J'essaye de dessiner des formes basiques sur un QGLWidget. J'essaie d'activer l'antialiasing pour lisser les lignes, mais ça ne marche pas.Quelles sont les étapes nécessaires pour activer l'antialiasing lors de l'utilisation d'un QPainter sur un QGLWidget?
C'est ce que je suis en train au moment:
QGLWidget *widget = ui->renderWidget;
QPainter painter;
widget->makeCurrent();
glEnable(GL_MULTISAMPLE);
glEnable(GL_LINE_SMOOTH);
painter.setRenderHint(QPainter::Antialiasing);
painter.setRenderHint(QPainter::HighQualityAntialiasing);
painter.begin(widget);
Cependant, quoi que ce soit dessiné avec ce peintre a encore des bords déchiquetés. Quoi d'autre dois-je faire?
Votre système prend-il en charge les tampons d'images multi-échantillons? – cmannett85
Oui, c'est Windows 7, et je l'ai eu pour travailler sur un autre projet Qt qui utilisait QGLWidget sans QPainter, en activant simplement GL_MULTISAMPLE. – Elliott
Le fait que ce soit Windows 7 n'est pas pertinent, c'est si votre GPU et les pilotes les supportent - mais si un autre projet sur la même machine fonctionnait correctement alors ça doit être OK. Votre exemple semble suggérer que vous essayez de dessiner sur le widget en dehors d'un paintEvent (événement QPaintEvent *), ou est-ce juste un pseudo-code? – cmannett85