X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Fwx%2Fgl_video_view.cc;h=a0f83db6d4390dfba4d056d5d4eb13da67048164;hp=d16ac444185f59a7c2c3bd2ee2e158f078d06b1c;hb=95fd93f5b1432b5230be76f1521216b472744514;hpb=3044ef060894c62e8a1cef15ad14078001093982 diff --git a/src/wx/gl_video_view.cc b/src/wx/gl_video_view.cc index d16ac4441..a0f83db6d 100644 --- a/src/wx/gl_video_view.cc +++ b/src/wx/gl_video_view.cc @@ -51,6 +51,7 @@ using boost::optional; GLVideoView::GLVideoView (FilmViewer* viewer, wxWindow *parent) : VideoView (viewer) + , _vsync_enabled (false) { _canvas = new wxGLCanvas (parent, wxID_ANY, 0, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE); _context = new wxGLContext (_canvas); @@ -62,13 +63,18 @@ GLVideoView::GLVideoView (FilmViewer* viewer, wxWindow *parent) /* Enable vsync */ Display* dpy = wxGetX11Display(); glXSwapIntervalEXT (dpy, DefaultScreen(dpy), 1); + _vsync_enabled = true; } #endif #ifdef DCPOMATIC_WINDOWS if (_canvas->IsExtensionSupported("WGL_EXT_swap_control")) { /* Enable vsync */ - wglSwapIntervalEXT (1); + PFNWGLSWAPINTERVALEXTPROC swap = (PFNWGLSWAPINTERVALEXTPROC) wglGetProcAddress("wglSwapIntervalEXT"); + if (swap) { + swap (1); + _vsync_enabled = true; + } } #endif @@ -77,6 +83,7 @@ GLVideoView::GLVideoView (FilmViewer* viewer, wxWindow *parent) /* Enable vsync */ GLint swapInterval = 1; CGLSetParameter (CGLGetCurrentContext(), kCGLCPSwapInterval, &swapInterval); + _vsync_enabled = true; #endif glGenTextures (1, &_id);