Sto provando a disegnare forme base su un QGLWidget. Sto cercando di abilitare l'antialias per smussare le linee, ma non funziona.Quali passaggi sono necessari per abilitare l'antialias quando si utilizza QPainter su un QGLWidget?
Questo è quello che sto provando in questo momento:
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);
Tuttavia, nulla disegnato con questo pittore ha ancora i bordi frastagliati. Cos'altro devo fare?
Il sistema supporta i framebuffer multisample? – cmannett85
Sì, è Windows 7 e l'ho fatto funzionare su un altro progetto Qt che usava QGLWidget senza QPainter, semplicemente abilitando GL_MULTISAMPLE. – Elliott
Il fatto che sia Windows 7 è irrilevante, dipende dal fatto che la GPU e i driver li supportino o meno, ma se un altro progetto sulla stessa macchina_ ha funzionato correttamente, deve essere OK. Il tuo esempio sembra suggerire che stai cercando di disegnare sul widget al di fuori di un 'paintEvent (evento QPaintEvent *)', o è solo confondere lo pseudo-codice !? – cmannett85