Quelles sont les étapes nécessaires pour activer l'anticrénelage lors de l'utilisation d'un QPainter sur un QGLWidget?

Je suis en train de dessiner des formes de base sur un QGLWidget. Je suis en train d'activer l'antialiasing pour lisser les lignes, mais ça ne fonctionne pas.

C'est ce que je suis en train en ce 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, rien dessinés avec ce peintre a encore des bords irréguliers. De quoi dois-je faire?

Est-ce que votre système de support multi-échantillons tampons d'images?
Oui, c'est windows 7, et j'ai eu à le faire fonctionner sur un autre Qt projet utilisé QGLWidget sans un QPainter, simplement en permettant GL_MULTISAMPLE.
Le fait que c'est Windows 7 n'est pas pertinent, c'est de savoir si ou non de votre GPU et de la prise en charge des pilotes eux - mais si un autre projet sur la même machine a fonctionné correctement, alors il doit être OK. Votre exemple semble indiquer que vous êtes en train de dessiner sur le widget à l'extérieur d'un paintEvent(QPaintEvent* event), ou est-ce juste confus pseudo-code!?

OriginalL'auteur Elliott | 2012-06-10