X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fgl_video_view.cc;h=a0f83db6d4390dfba4d056d5d4eb13da67048164;hb=63c1bbc1ba177600523b2257223070cc2dbde7b7;hp=cac8e9c8ff0104f9cb4b1ec568f104e34b99ee5d;hpb=9911159cb0bd9817265fe66086f75612f077aaf8;p=dcpomatic.git diff --git a/src/wx/gl_video_view.cc b/src/wx/gl_video_view.cc index cac8e9c8f..a0f83db6d 100644 --- a/src/wx/gl_video_view.cc +++ b/src/wx/gl_video_view.cc @@ -31,18 +31,27 @@ #include #include #include -#else +#endif + +#ifdef DCPOMATIC_LINUX #include #include #include #endif +#ifdef DCPOMATIC_WINDOWS +#include +#include +#include +#endif + using std::cout; using boost::shared_ptr; 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); @@ -54,21 +63,27 @@ 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 #ifdef DCPOMATIC_OSX /* Enable vsync */ - long swapInterval = 1; + GLint swapInterval = 1; CGLSetParameter (CGLGetCurrentContext(), kCGLCPSwapInterval, &swapInterval); + _vsync_enabled = true; #endif glGenTextures (1, &_id);