Bonjour,
J'ai, comme beaucoup, suivis ce document pour intégrer une surface SFML dans une fenêtre Qt.
http://becomingindiedev.blogspot.fr/2013/10/qt-5-and-sfml-20-integration.htmlQue j'ai modifié pour que la surface agisse comme un widget classique, et non placé de façon rigide.
J'ai remarqué, que lorsque l'on redimensionne la fenêtre, celle de rendu ne change pas de taille.
La seule façon de faire que j'ai trouvé, pour que la surface SFML soit redimensionné est de la recréer lorsque le widget est redimensionné (RenderWindow::setSize() ne donne pas l'effet souhaité, et peut freeze le programme).
void QSFMLCanvas::resizeEvent(QResizeEvent * event)
{
QWidget::resizeEvent(event);
sf::View lastV(RenderWindow::getView());
RenderWindow::close();
RenderWindow::create(reinterpret_cast<sf::WindowHandle>(winId()));
sf::View v(RenderWindow::getView());
v.setCenter(lastV.getCenter());
RenderWindow::setView(v);
}
Par contre, cette façon de faire génère une grosse fuite de mémoire lors du redimensionnement, comme si la surface précédente n'est pas détruite.
Comment éviter cette fuite ?
Merci
nico