Войти
ПроектыФорумУтилиты

"QapLite.h" - простой графический header-движок для C++11, Direct3D9

Страницы: 1 2 Следующая »
#0
0:01, 25 июня 2014

"QapLite.h" - простой графический header-движок для C++11, Direct3D9

Особенности:


  Для отрисовки используется Direct3D9.
  Время компиляции 2-3 секунды.
  Нет лишних зависимостей во время компиляции. //(d3dx9,dxut,zlib,bass,glut,sdl etc)
  Нет лишних зависимостей во время выполнения. //(d3dx9,dxut,zlib,bass,glut,sdl etc)
  Компилируется "из коробки". //ставим MSVC2013; скачиваем "QapLite.h" компилируем и всё работает!
  EXE запускается "из коробки". //Скомпилировали exe`шник; отнесли его на "новый комп без драйверов для видео карты". Запустили и всё работает!
  Нет текстур. // Нафиг текстуры для разработки игровой механики?
  Нет вывода текста. // Основной подвох урезанной версии движка. В полной версии то всё есть :)
  Нет текстурных атласов. // Нет текстур - нет текстурных атласов - логично же!
  Нет GUI. // Нафиг GUI для разработки игровой механики?
  Нет Spline`ов. // ок.
  Нет систем частиц(particles). // Нафиг системы частиц для разработки игровой механики? ладно, пофиг, в примерах к движку то они есть!
  Есть батчинг! // Это позволяет рисовать много-много-много всего и очень-очень быстро.
  Всё в одном H-файле! // Насколько мне известно такая особенностью есть только у моего движка. Это реально круто!
  Есть отрисовка прямоугольников/линий/окружностей. // лол, и чё?
  Можно менять цвета примитивов. // ну круто же!
  Нет глобальных переменных. // Уникальная особенностью! Такого больше нигде нет! Правда-правда.

Пример использования:

+ Показать

Результат:


qaplitedemo_screenshot | "QapLite.h" - простой графический header-движок для C++11, Direct3D9

Скачать:


  QapLiteDemo(2014.06.24)

ЗЫ: Для компиляции использую MS Visual Studio 2010.

Added: Win XP не поддерживается.


#1
23:35, 14 сен. 2014

Сделал столкновение кружочка с отрезком вот для этой темы:
http://www.gamedev.ru/code/forum/?id=193218
circleandwall | "QapLite.h" - простой графический header-движок для C++11, Direct3D9
Скачать:
  DemoCircleAndWall

Исходный код:

+ Показать

Я старался сделать чтобы код компилировался и работал с первого раза, проверьте пожалуйста.

#2
0:34, 29 сен. 2014

Сделал простейшую систему частиц(без текстур) вот для этой темы: http://www.cyberforum.ru/directx/thread1264287.html

Снимок экрана:
particles | "QapLite.h" - простой графический header-движок для C++11, Direct3D9

Скачать:
  DemoParticles

Исходный код:

+ Показать

Норм?

#3
0:42, 29 сен. 2014

Adler
> Норм?
норм вроде бы=)

#4
0:27, 1 окт. 2014

Сделал проецирование точки на прямую заданную отрезком вот для этой темы: http://www.gamedev.ru/code/forum/?id=193786
PutAPointOnTheLine | "QapLite.h" - простой графический header-движок для C++11, Direct3D9
Решение:

vec2d PutAPointOnTheLine(const vec2d&point,const vec2d&a,const vec2d&b){
  return a+vec2d((point-a).Rot(b-a).x,0).UnRot(b-a);
}

Скачать:
  DemoVec2dRot

Исходный код:

+ Показать
#5
9:07, 1 окт. 2014

у меня почему то при запуске любого твоего экзешника система уходит в ребут, компилировать сам не пробовал

Операционная система                             
Microsoft Windows XP Professional
Пакет обновления ОС                             
Service Pack 3

DirectX                                         
4.09.00.0904 (DirectX 9.0c)

Видеоадаптер                                     
VIA/S3G UniChrome Pro IGP  (64 Мб)

Системная память                                 
704 Мб  (DDR SDRAM)

#6
13:24, 1 окт. 2014

gambit_oz
>VIA/S3G UniChrome Pro IGP (64 Мб)
Жесть. Так он же только DirectX 7 держит, нет?

> у меня почему то при запуске любого твоего экзешника система уходит в ребут,
> компилировать сам не пробовал
Я обычно на ноуте кодю с Win8. Но помню года 4 назад когда я только начинал работать с DirectX9 у меня на компе был XP и я решил потестить свою прогу с DX9 и он тоже перезагружался в трёх случаях из трёх. Но я тогда не стал сразу разбираться в чём дело, а потом брат форматнул на компе хард с XP и поставил там линукс. С тех про я уже и забыл про эту проблему.

Надо попробовать скомпилировать и запустить под дебагом в MSVS10 в WinXP и посмотреть воспроизвдёться ли проблемма, только у меня нет WinXP.

А вообще наверно всё дело в DeviceCaps. Я там создаю вершины VertexBuffer и IndexBuffer на 3 миллиона элементов. Наверно на старых видюхах столько не поддерживается.
Я тут по быстрому попробовал пофиксить и теперь учитываю D3DCAPS9::MaxPrimitiveCount при создании буферов:
  DemoForWinXp

Ещё проблемма может быть при создании девайса, он может тупо не создаться из-за какой-нибудь не поддерживаемой фигни, но это вроде не должно приводить к ребуту компа. Короче, если фикс выше не поможет, тогда надо логи прикручивать.

Спасибо за инфу.

Добавлено:
  Я тут в логах на китайском сайте вот что нашёл для твой видеокарты:

MaxPrimitiveCount : 65535
MaxVertexIndex : 65535

Похоже предположение верно и фикс должен устранить проблему, проверь пажалуйства.

#7
18:55, 1 окт. 2014

однако Круто...

#8
8:15, 2 окт. 2014

Adler
фикс не помог
доберусь до дома проверю на нормальной машине

странно конечно, я на этой машинке и Opengl приложения часто юзал и DirectX, но такого чтоб прям ребут - еще ни разу не было)) поэтому и написал,
подумал даже по началу, а не вирус ли какой в exe, но каспер с последними базами - молчал
при случае поставлю компилятор - проверю сам, потом отпишусь

видимо и правда с видяхой какой то косяк

#9
23:14, 19 окт. 2014

Сделал определение направления обхода вершин для вот это темы: http://www.gamedev.ru/code/forum/?id=194409
direction of traversal | "QapLite.h" - простой графический header-движок для C++11, Direct3D9
Решение:

bool isRight(const vec2d&prev,const vec2d&o,const vec2d&next){return (next-o).Rot(prev-o).y>0;}
Скачать:
  DemoDirectionOfTraversal

Исходный код:

+ Показать
#10
23:26, 19 окт. 2014

gambit_oz
> фикс не помог
эх... значит надо логи прикручивать чтобы понять в чём дело, но мне лень тебя напрягать, поэтому я пойду просто в начале темы напишу что Win XP не поддерживается и всё :D

спасибо за то что рассказал о проблеме и потестил недофикс.

#11
2:42, 7 дек. 2014

Делал кубик рубика для вот этой темы: http://www.cyberforum.ru/directx/thread1313280.html
RubiksCube3D | "QapLite.h" - простой графический header-движок для C++11, Direct3D9

Ещё научился генерировать геометрию для:
  кубов
  цилиндров
  сфер
  труб

Ещё научился делать FPS камеру.

Переделал класс vec3f, теперь у него куча перегруженных операторов(прям как у vec2d и QapColor).

Сгенерировал систему координат:
3D_WIP | "QapLite.h" - простой графический header-движок для C++11, Direct3D9

Разбирался куда смотрит камера по дефолту - она смотрит по оси OX из начала координат, OY вверх, OX вправо.

Учусь генерировать линии из труб/цилиндров.

ЗЫ: всё рисуется за один DIP, геометрия генерируется каждый кадр заново, освещения на втором скрине нет, просто я вручную меняю цвета вершин вторым проходом, d3dx9 и прочие либы не используются.

Скачать:
  file=102260]

управление: WASD, стерлки, space, shift, control, L, O, F, цифры
#12
12:59, 17 янв. 2015

>Всё в одном H-файле! // Насколько мне известно такая особенностью есть только у моего движка. Это реально круто!
Круто, то круто, только вот если человек пишет на С++, то ему скорее-всего будет не лень подключить одну lib и h, который подцепит другие заголовки, а вот тебе и другим людям(которые захотят помочь тебе развить сей продукт) будет жутко неудобно работать с кодом в таком виде. даже в 300-500 строчном файле бывает сложно ориентироваться, а тут 3к. Благо есть студия.

#13
13:38, 17 янв. 2015

задумка хороша, но слишком просто, хотя бы битмап фонты нужны, идеальный вариант это HGE DX11 :)

во многих проектах есть необходимость быстренько вывести дебаг инфу в виде текста или графика, и тут начинается...

#14
17:47, 18 янв. 2015

Danich
> если человек пишет на С++, то ему скорее-всего будет не лень подключить одну lib и h
Предлагаю подумать о новичках которые только начинаю писать код на С++. // Я считаю, что часть из них скорее забросит С++, чем станет разбираться с lib`ами.

> а вот тебе и другим людям будет жутко неудобно работать с кодом в таком виде
Есть новички которым нужен простой графический header-движок на С++ и Direct3D9 и им пофиг на то, удобно разрабатывать двиг или нет.

> которые захотят помочь тебе развить сей продукт
пусть новички развиваю двиг только в ту сторону которая нужна для их проектов.

baga
> битмап фонты нужны
срочно? :)

baga
> во многих проектах есть необходимость быстренько вывести дебаг инфу в виде
> текста или графика, и тут начинается...
спасибо, я подумаю над этим.

Страницы: 1 2 Следующая »
ПроектыФорумУтилиты

Тема в архиве.