X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fgl_video_view.cc;h=a0f83db6d4390dfba4d056d5d4eb13da67048164;hb=dde431cafbb20ed3356ad5592be56af1d4458f46;hp=400e69c63169bde5bb6bbd3d246525f18583c0c2;hpb=cde85356d0f13c5e41b38484dbeb7516eeeee774;p=dcpomatic.git diff --git a/src/wx/gl_video_view.cc b/src/wx/gl_video_view.cc index 400e69c63..a0f83db6d 100644 --- a/src/wx/gl_video_view.cc +++ b/src/wx/gl_video_view.cc @@ -42,6 +42,7 @@ #ifdef DCPOMATIC_WINDOWS #include #include +#include #endif using std::cout; @@ -50,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); @@ -61,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 @@ -76,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);