Использование Qt с DirectX? - PullRequest
       42

Использование Qt с DirectX?

9 голосов
/ 29 октября 2009

Какие именно мои варианты? У меня есть программы, которые мне нужно написать в OpenGL и DirectX , и я хотел бы использовать Qt для OpenGL, и мне не нужно повторно реализовывать половину моего программа для компонентов DirectX моей задачи.

Я посмотрел в Google и нашел ссылки на людей, жалующихся на то, что Direct3D является зависимостью от Qt, и людей, говорящих о реализации подкласса QD3DWidget QWidget аналогично QGLWidget, но никто говорили о том, как это реализовать или где есть примеры.

Мне нужна помощь. Я хочу знать, возможно ли это? Что мне нужно сделать, чтобы это заработало? Было ли это сделано раньше?

Ответы [ 3 ]

15 голосов
/ 08 апреля 2011

это довольно просто, чем я думал,

-> Create a QWidget
-> Override paintEngine() method, does nothing, just returns NULL
-> Assign HWND to widget->winId()

    #ifdef USE_QTGUI
        QApplication a(argc, argv);
        CD3DWidget wndw;    wndw.show();    wndw.resize(1280,960);
        hWnd = wndw.winId();
    #else
        hWnd = CreateAppWindow(name,300,300);
    #endif

       //CD3DWidget class contains only the following definitions
    CD3DWidget::CD3DWidget(QWidget * parent):QWidget(parent){      }
    QPaintEngine *CD3DWidget::paintEngine (){          return NULL;        }

Спасибо,

CV

2 голосов
/ 29 октября 2009

Список изменений:

Qt 4.6 представляет множество новых функций и улучшений, а также исправлений более 4.5.х серии.

......................

  • Экспериментальный движок рисования Direct3D был удален. Причина для это то, что Nokia фокусируется на OpenGL для настольного оборудования ускоряется рендеринг.

......................

1 голос
/ 29 октября 2009

При всей своей ценности, вот как получить вывод Ogre3D в окно Qt 4.5 . По сути, вы берете поверхность рендеринга и используете ее для рендеринга вывода. Это «подход приложения Qt в D3D / OpenGL».

Вот примеры OpenGL с Qt 4.5 с использованием окна OpenGL .

Если я правильно понимаю, поддержка Direct3D является экспериментальной и используется только для рисования окон .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...