]> git.lizzy.rs Git - irrlicht.git/commitdiff
Use swap_control from MESA and EXT before SGI
authorx2048 <codeforsmile@gmail.com>
Thu, 29 Dec 2022 21:44:03 +0000 (22:44 +0100)
committerx2048 <codeforsmile@gmail.com>
Thu, 29 Dec 2022 21:48:36 +0000 (22:48 +0100)
SGI does not support disabling vsync (interval == 0)

source/Irrlicht/COpenGLExtensionHandler.h

index 4f88324f748f3f2c8bd079cad24a6ebecc0f5c4f..960b7f6dc172f8a686fc4be37958bc5310034289 100644 (file)
@@ -3401,33 +3401,32 @@ inline void COpenGLExtensionHandler::extGlSwapInterval(int interval)
 #endif\r
 #endif\r
 #ifdef _IRR_COMPILE_WITH_X11_DEVICE_\r
-       //TODO: Check GLX_EXT_swap_control and GLX_MESA_swap_control\r
-#ifdef GLX_SGI_swap_control\r
-       // does not work with interval==0\r
+#if defined(GLX_MESA_swap_control)\r
 #ifdef _IRR_OPENGL_USE_EXTPOINTER_\r
-       if (interval && pGlxSwapIntervalSGI)\r
-               pGlxSwapIntervalSGI(interval);\r
+       if (pGlxSwapIntervalMESA)\r
+               pGlxSwapIntervalMESA(interval);\r
 #else\r
-       if (interval)\r
-               glXSwapIntervalSGI(interval);\r
+       pGlXSwapIntervalMESA(interval);\r
 #endif\r
 #elif defined(GLX_EXT_swap_control)\r
-#ifdef _IRR_OPENGL_USE_EXTPOINTER_\r
        Display *dpy = glXGetCurrentDisplay();\r
        GLXDrawable drawable = glXGetCurrentDrawable();\r
-\r
+#ifdef _IRR_OPENGL_USE_EXTPOINTER_\r
        if (pGlxSwapIntervalEXT)\r
                pGlxSwapIntervalEXT(dpy, drawable, interval);\r
 #else\r
        pGlXSwapIntervalEXT(dpy, drawable, interval);\r
 #endif\r
-#elif defined(GLX_MESA_swap_control)\r
+#elif defined(GLX_SGI_swap_control)\r
+       // does not work with interval==0\r
 #ifdef _IRR_OPENGL_USE_EXTPOINTER_\r
-       if (pGlxSwapIntervalMESA)\r
-               pGlxSwapIntervalMESA(interval);\r
+       if (interval && pGlxSwapIntervalSGI)\r
+               pGlxSwapIntervalSGI(interval);\r
 #else\r
-       pGlXSwapIntervalMESA(interval);\r
+       if (interval)\r
+               glXSwapIntervalSGI(interval);\r
 #endif\r
+       }\r
 #endif\r
 #endif\r
 }\r