glx: Stop relying on libGL ABI bugs for glGetCompressedTexImage().
authorEric Anholt <eric@anholt.net>
Mon, 27 Jan 2014 19:36:05 +0000 (11:36 -0800)
committerKeith Packard <keithp@keithp.com>
Sat, 8 Feb 2014 00:00:26 +0000 (16:00 -0800)
In theory, the linux libGL ABI exposes just GL 1.2 plus GLX 1.3.  But,
thanks to libglapi, we're letting glGetCompressedTexImageARB() be
exposed too.  The GLX code was inappropriately relying on it by using
GL_GLEXT_PROTOTYPES.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
glx/indirect_texture_compression.c

index 94de47d..2018de6 100644 (file)
@@ -54,9 +54,11 @@ __glXDisp_GetCompressedTexImage(struct __GLXclientStateRec *cl, GLbyte * pc)
                                  &compsize);
 
         if (compsize != 0) {
+            PFNGLGETCOMPRESSEDTEXIMAGEARBPROC GetCompressedTexImageARB =
+                __glGetProcAddress("glGetCompressedTexImageARB");
             __GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
             __glXClearErrorOccured();
-            glGetCompressedTexImageARB(target, level, answer);
+            GetCompressedTexImageARB(target, level, answer);
         }
 
         if (__glXErrorOccured()) {
@@ -96,9 +98,11 @@ __glXDispSwap_GetCompressedTexImage(struct __GLXclientStateRec *cl, GLbyte * pc)
                                  &compsize);
 
         if (compsize != 0) {
+            PFNGLGETCOMPRESSEDTEXIMAGEARBPROC GetCompressedTexImageARB =
+                __glGetProcAddress("glGetCompressedTexImageARB");
             __GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
             __glXClearErrorOccured();
-            glGetCompressedTexImageARB(target, level, answer);
+            GetCompressedTexImageARB(target, level, answer);
         }
 
         if (__glXErrorOccured()) {