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

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

Страницы: 1 2
#15
20:58, 18 янв. 2015

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

были нужны, но нашелся DirectXTK, он кривой косой но работает :)


#16
12:25, 31 мар. 2015

Сделал демку использующую "SusliX Lite" для вот этой темы: http://www.gamedev.ru/code/forum/?id=199676

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

Скачать:
  DemoSusliXLite

#17
14:53, 25 июня 2015

нашёл баг:
если нажать ALT+1, то win.Close() не вызывается.

#include "QapLite.h"

class TGame:public TD3DGameBoxBuilder{
public:
  void DoMove()
  {
    auto&kb=win.Keyboard;
    if(kb.OnDown('1')&&kb.Down[VK_MENU])
    {
      win.Close();
    }
  }
};

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
  GlobalEnv global_env(hInstance,hPrevInstance,lpCmdLine,nCmdShow);
  TGame builder;
  builder.DoNice();
}
чтобы заработало, надо исправить баг в TD3DGameBox::KeyboardUpdate вот так:
+ Показать

diff: https://www.diffchecker.com/ce5hgnog

/стыд

#18
12:01, 2 ноя. 2015

Сделал вывод текста треугольниками .
Cделал класс t_geom для буферизации геометрии.  //теперь можно нарисовать ещё больше однотипных линий, окружностей и квадратов за тоже самое время!

struct t_geom{vector<vec2d> VA;vector<int> IA;/*...*/};
Сделал чтобы вывод текста треугольниками использовал t_geom для каждой буквы. //теперь можно нарисовать ещё больше однотипных букв за тоже самое время!
DemoFastCD | "QapLite.h" - простой графический header-движок для C++11, Direct3D9

+ Рубрика Сегодня посмотрел чужой движок

#19
13:54, 2 ноя. 2015

Adler
> DrawPrimitive для каждой линии - тормозное говно.
Наверное, писали для дебага в спешке, потому пофик

#20
14:10, 2 ноя. 2015
StiX
> Наверное, писали для дебага в спешке, потому пофик
это же позор, когда в спешке выкатываешь на публику тормозное говно.
любой может это заметить и экстерполировать на весь двиг => там всё сделано в спешке => непродуманное раздутое тормозное говно с кучей зависимостей.
#21
15:25, 2 ноя. 2015

Adler
Уймись. Рисованием линий никто не занимается в релизных сборках, потому на этот косяк всем кроме тебя наплевать. Если начнет тормозить, тогда и оптимизируют

#22
16:54, 2 ноя. 2015
StiX
От старта до релизной сборки длинный путь из тысяч in-dev сборок (с дебажной инфой,текстом и линиями).
Каждому новичку попытавшемуся нарисовать всего 2к линий будет не наплевать.
Чтобы было заметно, что отрисовка линий тормозит, нужно чтобы было с чем сравнивать, а что если там не с чем сравнивать? Вдруг там всё такое такое же тормозное? :)
#23
21:21, 2 ноя. 2015

Adler
> DrawPrimitive для каждой линии - тормозное говно.
То есть то, что там перед этим происходит ещё какой-то setup2DDrawing(); - это тебя не смущает?
Если DrawPrimitive - это аналог glDrawArrays, то эта функция очень быстра, но только в том случае, если не меняется буфер вершин.

Прошло более 1 года
#24
10:16, 16 авг. 2017

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

static bool CD_LineVsLine(const vec2d&a,const vec2d&b,const vec2d&c,const vec2d&d,vec2d*out=nullptr){
  auto ox=b-a;
  auto v=d-c;
  auto v_ox=v.Rot(ox);
  if(!v_ox.y)return false;
  auto d_ox=(d-a).Rot(ox);
  auto t=d_ox.y/v_ox.y;
  if(t<0||t>1)return false;
  auto px=d_ox.x-t*v_ox.x;
  if(out)*out=vec2d(px,0).UnRot(ox)+a;
  return px>0&&px<ox.Mag();
}

Скачать:
  DemoVec2dRot

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

+ Показать

Скачать:
  DemoCDLineVsLine

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

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