What exactly are my options? I have programs I need to write in OpenGL and DirectX, and I'd like to use Qt for OpenGL, and not have to re-implement half my program for the DirectX components of my task.
I've looked on Google and I have found references to people complaining about Direct3D being a dependency of Qt, and people talking about implementing QD3DWidget sub-classing QWidget in a similar fashion to QGLWidget, yet nobody talked about how to implement it or where any examples are.
I need help. I want to know if it is possible? What would I need to do to get it working? Has it been done before?
回答1:
its pretty straightforward than I thought,
->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;}
Thanks,
CV
回答2:
List of changes:
Qt 4.6 introduces many new features and improvements as well as bugfixes over the 4.5.x series.
......................
The experimental Direct3D paint engine has been removed. The reason for this is that Nokia focuses on OpenGL for desktop hardware accelerated rendering.