[vlc-commits] Used WGL_EXT_swap_control in glwin32.
    Laurent Aimar 
    git at videolan.org
       
    Sun Jun  5 16:26:06 CEST 2011
    
    
  
vlc | branch: master | Laurent Aimar <fenrir at videolan.org> | Thu Jun  2 21:56:23 2011 +0200| [81072d68c7f84a78a35370af892deed1fe23ce0c] | committer: Laurent Aimar
Used WGL_EXT_swap_control in glwin32.
It avoid tearing depending on the default settings.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=81072d68c7f84a78a35370af892deed1fe23ce0c
---
 modules/video_output/msw/glwin32.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/modules/video_output/msw/glwin32.c b/modules/video_output/msw/glwin32.c
index fb7ec30..7199094 100644
--- a/modules/video_output/msw/glwin32.c
+++ b/modules/video_output/msw/glwin32.c
@@ -39,6 +39,7 @@
 #endif
 
 #include "../opengl.h"
+#include <GL/wglew.h>
 #include "common.h"
 
 /*****************************************************************************
@@ -108,6 +109,15 @@ static int Open(vlc_object_t *object)
     sys->hGLRC = wglCreateContext(sys->hGLDC);
     wglMakeCurrent(sys->hGLDC, sys->hGLRC);
 
+    const char *extensions = (const char*)glGetString(GL_EXTENSIONS);
+#ifdef WGL_EXT_swap_control
+    if (HasExtension(extensions, "WGL_EXT_swap_control")) {
+        PFNWGLSWAPINTERVALEXTPROC SwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)wglGetProcAddress("wglSwapIntervalEXT");
+        if (SwapIntervalEXT)
+            SwapIntervalEXT(1);
+    }
+#endif
+
     /* */
     sys->gl.lock = NULL;
     sys->gl.unlock = NULL;
    
    
More information about the vlc-commits
mailing list