Merge pull request #14434 from Smjert/fix/13447/vsync
Fixes vsync setting ignored when using a separate thread for rendering
This commit is contained in:
commit
a8ee9a6116
@ -92,14 +92,16 @@ public:
|
|||||||
bool resizable;
|
bool resizable;
|
||||||
bool borderless_window;
|
bool borderless_window;
|
||||||
bool maximized;
|
bool maximized;
|
||||||
|
bool use_vsync;
|
||||||
float get_aspect() const { return (float)width / (float)height; }
|
float get_aspect() const { return (float)width / (float)height; }
|
||||||
VideoMode(int p_width = 1024, int p_height = 600, bool p_fullscreen = false, bool p_resizable = true, bool p_borderless_window = false, bool p_maximized = false) {
|
VideoMode(int p_width = 1024, int p_height = 600, bool p_fullscreen = false, bool p_resizable = true, bool p_borderless_window = false, bool p_maximized = false, bool p_use_vsync = false) {
|
||||||
width = p_width;
|
width = p_width;
|
||||||
height = p_height;
|
height = p_height;
|
||||||
fullscreen = p_fullscreen;
|
fullscreen = p_fullscreen;
|
||||||
resizable = p_resizable;
|
resizable = p_resizable;
|
||||||
borderless_window = p_borderless_window;
|
borderless_window = p_borderless_window;
|
||||||
maximized = p_maximized;
|
maximized = p_maximized;
|
||||||
|
use_vsync = p_use_vsync;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -819,7 +819,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
|
|||||||
OS::get_singleton()->_allow_hidpi = GLOBAL_DEF("display/window/dpi/allow_hidpi", false);
|
OS::get_singleton()->_allow_hidpi = GLOBAL_DEF("display/window/dpi/allow_hidpi", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
use_vsync = GLOBAL_DEF("display/window/vsync/use_vsync", true);
|
video_mode.use_vsync = GLOBAL_DEF("display/window/vsync/use_vsync", true);
|
||||||
|
|
||||||
GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_allocation", 2);
|
GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_allocation", 2);
|
||||||
GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_allocation.mobile", 3);
|
GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_allocation.mobile", 3);
|
||||||
@ -993,8 +993,6 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
|
|||||||
// also init our arvr_server from here
|
// also init our arvr_server from here
|
||||||
arvr_server = memnew(ARVRServer);
|
arvr_server = memnew(ARVRServer);
|
||||||
|
|
||||||
OS::get_singleton()->set_use_vsync(use_vsync);
|
|
||||||
|
|
||||||
register_core_singletons();
|
register_core_singletons();
|
||||||
|
|
||||||
MAIN_PRINT("Main: Setup Logo");
|
MAIN_PRINT("Main: Setup Logo");
|
||||||
|
@ -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 = memnew(ContextGL_Haiku(window));
|
||||||
context_gl->initialize();
|
context_gl->initialize();
|
||||||
context_gl->make_current();
|
context_gl->make_current();
|
||||||
|
context_gl->set_use_vsync(current_video_mode.use_vsync);
|
||||||
|
|
||||||
/* Port to GLES 3 rasterizer */
|
/* Port to GLES 3 rasterizer */
|
||||||
//rasterizer = memnew(RasterizerGLES2);
|
//rasterizer = memnew(RasterizerGLES2);
|
||||||
|
@ -1089,6 +1089,8 @@ void OS_OSX::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
|||||||
|
|
||||||
[context makeCurrentContext];
|
[context makeCurrentContext];
|
||||||
|
|
||||||
|
set_use_vsync(p_desired.use_vsync);
|
||||||
|
|
||||||
[NSApp activateIgnoringOtherApps:YES];
|
[NSApp activateIgnoringOtherApps:YES];
|
||||||
|
|
||||||
_update_window();
|
_update_window();
|
||||||
|
@ -241,6 +241,7 @@ void OSUWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_aud
|
|||||||
|
|
||||||
RasterizerGLES3::register_config();
|
RasterizerGLES3::register_config();
|
||||||
RasterizerGLES3::make_current();
|
RasterizerGLES3::make_current();
|
||||||
|
gl_context->set_use_vsync(vm.use_vsync);
|
||||||
|
|
||||||
visual_server = memnew(VisualServerRaster);
|
visual_server = memnew(VisualServerRaster);
|
||||||
// FIXME: Reimplement threaded rendering? Or remove?
|
// 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::register_config();
|
||||||
|
|
||||||
RasterizerGLES3::make_current();
|
RasterizerGLES3::make_current();
|
||||||
|
|
||||||
|
gl_context->set_use_vsync(video_mode.use_vsync);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
visual_server = memnew(VisualServerRaster);
|
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();
|
RasterizerGLES3::make_current();
|
||||||
|
|
||||||
|
context_gl->set_use_vsync(current_videomode.use_vsync);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
visual_server = memnew(VisualServerRaster);
|
visual_server = memnew(VisualServerRaster);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user