Bonjour,
Je suis un débutant en QT, donc peut-être que ma question est stupide.
Je vourdais afficher une fenêtre Direct3D dans QT.
En dérivant une classe QT comme QWidget, ça marche.
Mais je ne veux pas dériver de classe pour le rendu Direct3D car je veux pouvoir faire du rendu Direct3D sur n'importe quel élément, pour pouvoir facilement utiliser le designer de QT et pour ne pas avoir à dériver tout les éléments un par un sur lesquels je voudrais faire du rendu D3D.
J'y arrive déjà sur un bouton par exemple en récupérant l'identifiant de fenêtre Windows de l'élément:
Direct3DInit( ui.pushButton_D3D->winId(),ui.pushButton_D3D->width(),ui.pushButton_D3D->height() ) ;
Et je fais mon rendu D3D lors du clique sur un autre bouton:
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(s_testClick()));
void D3DTest2::s_testClick( void )
{
m_pDevice->Clear( 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(89,135,179), 1.0f, 0 );
m_pDevice->BeginScene();
m_pDevice->EndScene();
m_pDevice->Present(NULL, NULL, NULL, NULL);
}
Quand je click sur le bouton "pushButton", mon bouton "pushButton_D3D" affiche bien mon rendu D3D.
Mon problème est le suivant:
Je voudrais maintenant pouvoir afficher mon rendu D3D à chaque rafraichissement de l'élément.
(dans mon exemple ci-dessus, mon rendu D3D est remplacé par l'image normal du bouton avec le texte du bouton, lorsque je le survol ensuite avec la souris)
Il faudrait pour cela que je puisse capter le rafraichissement de l'élément pour effectuer le rendu D3D.
Comment faire ?
paintEvent ne semble pas être déclaré comme "signal".
Merci.
Partager