How do I enable multisampling when I create the window? How should I initialize OpenGL to match?
How do I enable multisampling (antialiasing) in OpenGL with Qt5?
Asked Answered
Took me a while to figure this one out.
The trick is to use a QSurfaceFormat
in your QWindow
's constructor like so:
setSurfaceType(QWindow::OpenGLSurface);
QSurfaceFormat format;
format.setSamples(4); // Set the number of samples used for multisampling
setFormat(format); // Note we set the format on the window...
create(); // Create the window
context = new QOpenGLContext(this);
context->setFormat(format); // ...and set the format on the context too
context->create();
And later, when initialising OpenGL:
glEnable(GL_MULTISAMPLE); // This seems to be the default given the configuration above, but just in case that's not universal...
really strange, what is the point in setting it on the QOpenGLContext if QWindow will just do its own thing –
Bathulda
@paulm: No idea, I just fiddled with stuff until it worked ;-) –
Desdamona
© 2022 - 2024 — McMap. All rights reserved.