Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2014, 10:37   #1
Adler
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 19
Сообщение QapLite - простой графический движок [C++11, Win32, Direct3D9, 2D]

Всем привет!

Я считаю что новичкам удобнее когда всё в одном H-файле. Поэтому я сделал урезаную версию своего движка.
Движка способен рисовать в больших кол-вах цветные полупрозрачные линии/прямоугольники/окружности.

Пример использования:
Код:
#include "QapLite.h"

class TGame:public TD3DGameBoxBuilder{
public:
  real ang;
  real speed;
public:
  TGame(){ang=0;speed=1.50*Pi/180.0;}
public:
  void DoMove()
  {
    if(win.Keyboard.Down[VK_ESCAPE])win.Close();
    ang+=speed;
  }
  void DoDraw()
  {
    qDev.BindTex(0,nullptr);
    QapDev::BatchScope Scope(qDev);
    {
      qDev.SetColor(0xff000000);
      qDev.DrawQuad(vec2i(100,100),50,50,-ang*0.5);
      qDev.SetColor(0xff008000);
      qDev.DrawQuad(vec2i(-100,-100),100,50,ang);
      int n=5;
      for(int x=-n;x<=+n;x++)for(int y=-n;y<=+n;y++)
      {
        qDev.SetColor(0xffffff00);
        qDev.DrawQuad(vec2i(x*16*1.5,y*16*1.5)+vec2i(-300,+200),16,16,ang*x*y*0.4);
        qDev.SetColor(0xffd08000);
        qDev.DrawQuad(vec2i(x*16*1.5,y*16*1.5)+vec2i(-300,+200),12,12,ang*x*y*0.4);
      }
      qDev.DrawCircle(vec2d(0.5,-0.5),80,0,10,32);
    }
  }
};

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
  GlobalEnv global_env(hInstance,hPrevInstance,lpCmdLine,nCmdShow);
  TGame builder;
  builder.DoNice();
}
Особенности:
Для отрисовки используеться Direct3D9!
Время компиляции 2-3 секунды!
Нет лишних зависимостей! // В полной версии есть
Нет текстур. // В полной версии есть
Нет вывода текста. // В полной версии есть
Нет текстурных атласов. // В полной версии есть
Нет GUI. // В полной версии есть
Нет Spline`ов. // В полной версии есть
Нет систем частиц(particles). // В полной версии есть
Есть батчинг! // Один батч = один вызов DrawIndexedPrimitive
Всё в одном H-файле!
Есть отрисовка прямоугольников/линий/окружностей!
Можно менять цвета примитивов!

Скачать:
http://www.gamedev.ru/files/?id=97795

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

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

Спасибо.
Изображения
Тип файла: png qaplitedemo_screenshot.png (15.9 Кб, 93 просмотров)

Последний раз редактировалось Adler; 15.09.2014 в 10:42.
Adler вне форума Ответить с цитированием
Старый 15.09.2014, 10:41   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Я считаю что новичкам удобнее когда всё в одном H-файле.
можно сделать один хидер который подключит все остальные просто.

Цитата:
Для отрисовки используеться Direct3D9!
в 2014 году сомнительная особенность.
Цитата:
Нет лишних зависимостей! // В полной версии есть
забавная фраза вышла
Цитата:
МОЖНО МЕНЯТЬ ЦВЕТА ПРИМИТИВОВ!!! ААААААА!!!
что за крики?

по коду примера и сути, сейчас я вижу нечто похоже на OpenGL(причем старый), но на основе DirectX9
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.09.2014, 11:14   #3
Adler
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 19
По умолчанию

Цитата:
можно сделать один хидер который подключит все остальные просто.
можно, разрешаю)
Цитата:
в 2014 году сомнительная особенность.
Я всё на DirectX сделал для того, чтобы у 90% пользователей проблем с запуском проги не возникало. А то у OpenGL вечно проблемы с драйверами.

Цитата:
по коду примера и сути, сейчас я вижу нечто похоже на OpenGL(причем старый), но на основе DirectX9
непонятно, можешь перефразировать?
Adler вне форума Ответить с цитированием
Старый 15.09.2014, 13:33   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
можно, разрешаю)
этим никто из пользователей не должен заниматься.
Цитата:
Я всё на DirectX сделал для того, чтобы у 90% пользователей проблем с запуском проги не возникало. А то у OpenGL вечно проблемы с драйверами.
я про то что 9-ая версия.
с OpenGL проблем мало если обновлять дрова на видео.

а так идея неплоха, но как с производительностью?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.09.2014, 17:36   #5
Adler
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 19
По умолчанию

Цитата:
этим никто из пользователей не должен заниматься.
согласен.
Цитата:
с OpenGL проблем мало если обновлять дрова на видео.
Часть пользователей не умеет и не хочет ничего обновлять, они просто удаляют твою OpenGL прогу и всё. А у DirectX таких проблем нет.
Цитата:
а так идея неплоха, но как с производительностью?
да нормально вроде.
Adler вне форума Ответить с цитированием
Старый 29.09.2014, 00:56   #6
Adler
Пользователь
 
Регистрация: 26.02.2009
Сообщений: 19
По умолчанию

Сделал систему частиц.
Наверно где-то через пару неделек выложу cross-post с gamedev.ru сюда.

зы: основаня тема - http://www.gamedev.ru/projects/forum/?id=190465
Adler вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Perfect Canvas, графический движок SaiLight Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 11.09.2014 11:00
Надо выбрать графический движок (С++) Juffin Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 11.09.2012 23:08
win32 API.Visual Studio 2008.Создание проекта Win32 Aleksandr_Yanov Visual C++ 2 12.09.2010 13:09
Простой графический редактор siriusz Общие вопросы Delphi 4 04.05.2010 20:54
Графический движок OGRE 3D Blade Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 16.04.2009 16:15