summaryrefslogtreecommitdiff
path: root/src/video/win32_v.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/video/win32_v.cpp')
-rw-r--r--src/video/win32_v.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp
index 426d74c0a..467478461 100644
--- a/src/video/win32_v.cpp
+++ b/src/video/win32_v.cpp
@@ -1290,7 +1290,6 @@ const char *VideoDriver_Win32OpenGL::Start(const StringList &param)
if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() == 0) return "Only real blitters supported";
Dimension old_res = _cur_resolution; // Save current screen resolution in case of errors, as MakeWindow invalidates it.
- this->vsync = GetDriverParamBool(param, "vsync");
LoadWGLExtensions();
@@ -1335,6 +1334,15 @@ void VideoDriver_Win32OpenGL::DestroyContext()
}
}
+void VideoDriver_Win32OpenGL::ToggleVsync(bool vsync)
+{
+ if (_wglSwapIntervalEXT != nullptr) {
+ _wglSwapIntervalEXT(vsync);
+ } else if (vsync) {
+ DEBUG(driver, 0, "OpenGL: Vsync requested, but not supported by driver");
+ }
+}
+
const char *VideoDriver_Win32OpenGL::AllocateContext()
{
this->dc = GetDC(this->main_wnd);
@@ -1363,12 +1371,7 @@ const char *VideoDriver_Win32OpenGL::AllocateContext()
}
if (!wglMakeCurrent(this->dc, rc)) return "Can't active GL context";
- /* Enable/disable Vsync if supported. */
- if (_wglSwapIntervalEXT != nullptr) {
- _wglSwapIntervalEXT(this->vsync ? 1 : 0);
- } else if (vsync) {
- DEBUG(driver, 0, "OpenGL: Vsync requested, but not supported by driver");
- }
+ this->ToggleVsync(_video_vsync);
this->gl_rc = rc;
return OpenGLBackend::Create(&GetOGLProcAddressCallback);