Fixes vsync setting ignored when using a separate thread for rendering
Setting the vsync in the main thread, after the rendering thread starts and takes the OpenGL context fails, so we need to do that before. Also, for some reason, the main thread cannot make current the context anymore. Fixes #13447
This commit is contained in:
@ -105,6 +105,7 @@ void OS_Haiku::initialize(const VideoMode &p_desired, int p_video_driver, int p_
|
||||
context_gl = memnew(ContextGL_Haiku(window));
|
||||
context_gl->initialize();
|
||||
context_gl->make_current();
|
||||
context_gl->set_use_vsync(current_video_mode.use_vsync);
|
||||
|
||||
/* Port to GLES 3 rasterizer */
|
||||
//rasterizer = memnew(RasterizerGLES2);
|
||||
|
||||
@ -1089,6 +1089,8 @@ void OS_OSX::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
||||
|
||||
[context makeCurrentContext];
|
||||
|
||||
set_use_vsync(p_desired.use_vsync);
|
||||
|
||||
[NSApp activateIgnoringOtherApps:YES];
|
||||
|
||||
_update_window();
|
||||
|
||||
@ -241,6 +241,7 @@ void OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_aud
|
||||
|
||||
RasterizerGLES3::register_config();
|
||||
RasterizerGLES3::make_current();
|
||||
gl_context->set_use_vsync(vm.use_vsync);
|
||||
|
||||
visual_server = memnew(VisualServerRaster);
|
||||
// FIXME: Reimplement threaded rendering? Or remove?
|
||||
|
||||
@ -1074,6 +1074,8 @@ void OS_Windows::initialize(const VideoMode &p_desired, int p_video_driver, int
|
||||
RasterizerGLES3::register_config();
|
||||
|
||||
RasterizerGLES3::make_current();
|
||||
|
||||
gl_context->set_use_vsync(video_mode.use_vsync);
|
||||
#endif
|
||||
|
||||
visual_server = memnew(VisualServerRaster);
|
||||
|
||||
@ -286,6 +286,8 @@ void OS_X11::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
||||
|
||||
RasterizerGLES3::make_current();
|
||||
|
||||
context_gl->set_use_vsync(current_videomode.use_vsync);
|
||||
|
||||
#endif
|
||||
visual_server = memnew(VisualServerRaster);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user