Domanda

Quali sono esattamente le mie opzioni? Ho dei programmi che devo scrivere in OpenGL e DirectX e mi piacerebbe usare Qt per OpenGL e non è necessario implementare di nuovo metà del mio programma per i componenti DirectX della mia attività.

Ho cercato su Google e ho trovato riferimenti a persone che si lamentano del fatto che Direct3D è un dipendenza di Qt e persone che parlano dell'implementazione della sottoclasse QWidget di QD3DWidget in modo simile a QGLWidget, ma nessuno ha parlato di come implementarlo o di dove siano gli esempi.

Ho bisogno di aiuto. Voglio sapere se è possibile? Cosa dovrei fare per farlo funzionare? È già stato fatto prima?

È stato utile?

Soluzione

è piuttosto semplice di quanto pensassi,

-> 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;        }

Grazie,

CV

Altri suggerimenti

Elenco delle modifiche:

Qt 4.6 introduce molte nuove funzionalità e miglioramenti, oltre a correzioni di errori sulla serie 4.5.x.

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

  • Il motore di pittura sperimentale Direct3D è stato rimosso. La ragione per questo è che Nokia si concentra su OpenGL per hardware desktop accelerato il rendering.

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

Per quanto valga la pena, ecco come ottenere l'output di Ogre3D su una finestra di Qt 4.5 . Fondamentalmente, prendi una superficie di rendering e la usi per renderizzare l'output. Questo è un "Qt nell'approccio applicativo D3D / OpenGL".

Ecco alcuni esempi di OpenGL con Qt 4.5 utilizzando la finestra OpenGL .

Se lo capisco correttamente, il supporto Direct3D è sperimentale e è usato solo per la pittura di finestre .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top