Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: QT 5.3 PaintEngine probleme  (Lu 2791 fois)

0 Membres et 1 Invité sur ce sujet

Alundra

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
QT 5.3 PaintEngine probleme
« le: Mai 21, 2014, 03:13:18 pm »
Salut,
En réalité le problème concerne tout rendu dans un "QWidget" avec QT 5.3, pas seulement SFML.
Sachant que un tutorial sur le sujet existe pour SFML alors j’espère que une réponse pourra être trouvé ici.
J'ai mis un message sur le QT-Bug report, pour le moment il a pas été analysé, sur qt-centre pas de réponse.
Le problème est que si on reimplémente "paintengine()" de "QWidget" avec juste "return NULL", il n'y a plus aucun rendu de visible, c'est comme si le widget ne faisait jamais d'update, si on reimplémente pas il y a un affichage mais un scintillement est visible.
Le problème n’était pas avec QT 5.1, depuis le passage a QT 5.3 le problème est la, je n'ai pas testé QT 5.2.
Avec espoir que une solution existe rapidement.
Merci de votre aide.
Alundra

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : QT 5.3 PaintEngine probleme
« Réponse #1 le: Mai 21, 2014, 04:17:16 pm »
Qt 5.3 est sorti hier, c'est un peu ambitieux d'espérer une réponse de notre part si le problème est effectivement présent depuis cette version uniquement... D'autant plus que le problème n'a rien à voir avec SFML.
Laurent Gomila - SFML developer

Alundra

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : QT 5.3 PaintEngine probleme
« Réponse #2 le: Mai 21, 2014, 07:49:44 pm »
D'autant plus que le problème n'a rien à voir avec SFML.
Le problème est aussi sur un QWidget avec SFML du coups cela pourrait aider des gens sur ce sujet aussi.
Mais j'avoue que la je bloque pas mal et pourtant ça se trouve une solution simple existe.
Si quelqu'un a une idée je suis preneur en tout cas.
Code : http://pastebin.com/Z6XsXdmk
Ici un log message sur chaque fonction, au lancement ca donne :
Citer
(19:58:39) paintEngine
(19:58:39) IRenderWidget
(19:58:39) showEvent
(19:58:39) resizeEvent
(19:58:39) resizeEvent
(19:58:39) resizeEvent
(19:58:39) resizeEvent
(19:58:39) resizeEvent
(19:58:39) resizeEvent
QT 5.3 ne fait aucun appel a "paintEvent" pourtant :
Citer
connect( &m_Timer, SIGNAL( timeout() ), this, SLOT( repaint() ) );
« Modifié: Mai 21, 2014, 08:02:03 pm par Alundra »

Alundra

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : QT 5.3 PaintEngine probleme
« Réponse #3 le: Mai 21, 2014, 08:55:45 pm »
Problème réglé, pour link SFML a QT 5.3 il faut faire la meme chose.
Il faut link un "slot" qui contient exactement le meme code que dans le PaintEvent :
Citer
void IRenderWidget::UpdateOneFrame()
{
  if( m_Initialized )
  {
    // Set the current render window.
    DE::CEngine::GetRenderer().SetRenderWindow( m_RenderWindow );

    // Update the render window widget.
    OnUpdate();

    // End of the rendering.
    DE::CEngine::GetRenderer().EndOfRendering();
  }
}
Citer
connect( &m_Timer, SIGNAL( timeout() ), this, SLOT( UpdateOneFrame() ) );
« Modifié: Mai 21, 2014, 09:01:34 pm par Alundra »