OpenGLSdlGraphics3dManager::setupScreen() might invoke `glGetIntegerv` without GL context
Description (last modified by )
When switching from the launcher to an OpenGL game such as Grim Fandango, the GL context is destroyed and then created again. To create a new context,
OpenGLSdlGraphics3dManager::setupScreen() is invoked. Before it actually created a new context, the MSAA sample count is retrieved with:
This in turn invokes
glGetIntegerv. According to the OpenGL spec, invoking any API without an active GL context results in undefined behavior.
While porting ScummVM to SerenityOS, I have had to patch out the above call to make Grim Fandango work at all. This is not a fix but a workaround, but it might be useful for you to see.
A possible solution would be to make sure to only retrieve the samples when a GL context exists.
Related SerenityOS PR: https://github.com/SerenityOS/serenity/pull/11831