The problem is actually that glBlendEquation, glActiveTexture, glMultiTexCoord2f and glMultiTexCoord2v are not "extensions" anymore in the latest versions of Mesa, so basically removing all the code involved in "loading" them is the actual fix to this issue (then again, this might be system-specific, so I think it'd be best kept as an optional patch).
Here's the patch (it's just commenting out a lot of lines):
Code: Select all
diff --git a/src/gl/api/gl_api.h b/src/gl/api/gl_api.h
index bcb03c4..992c768 100644
--- a/src/gl/api/gl_api.h
+++ b/src/gl/api/gl_api.h
@@ -7,7 +7,7 @@
#define __EXTERN extern
#endif
-__EXTERN PFNGLBLENDEQUATIONPROC glBlendEquation;
+//__EXTERN PFNGLBLENDEQUATIONPROC glBlendEquation;
// ARB_SHADER_OBJECTS
__EXTERN PFNGLDELETESHADERPROC glDeleteShader;
@@ -67,9 +67,9 @@ __EXTERN PFNGLBEGINQUERYARBPROC glBeginQuery;
__EXTERN PFNGLENDQUERYARBPROC glEndQuery;
__EXTERN PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuiv;
-__EXTERN PFNGLACTIVETEXTUREPROC glActiveTexture;
-__EXTERN PFNGLMULTITEXCOORD2FPROC glMultiTexCoord2f;
-__EXTERN PFNGLMULTITEXCOORD2FVPROC glMultiTexCoord2fv;
+//__EXTERN PFNGLACTIVETEXTUREPROC glActiveTexture;
+//__EXTERN PFNGLMULTITEXCOORD2FPROC glMultiTexCoord2f;
+//__EXTERN PFNGLMULTITEXCOORD2FVPROC glMultiTexCoord2fv;
__EXTERN PFNGLBINDBUFFERPROC glBindBuffer;
__EXTERN PFNGLDELETEBUFFERSPROC glDeleteBuffers;
diff --git a/src/gl/system/gl_interface.cpp b/src/gl/system/gl_interface.cpp
index cadab5a..54bc5bb 100644
--- a/src/gl/system/gl_interface.cpp
+++ b/src/gl/system/gl_interface.cpp
@@ -117,7 +117,7 @@ static bool CheckExtension(const char *ext)
static void InitContext()
{
gl.flags=0;
- glBlendEquation = glBlendEquationDummy;
+ //glBlendEquation = glBlendEquationDummy;
}
//==========================================================================
@@ -152,11 +152,11 @@ void gl_LoadExtensions()
gl.vendorstring=(char*)glGetString(GL_VENDOR);
// First try the regular function
- glBlendEquation = (PFNGLBLENDEQUATIONPROC)wglGetProcAddress("glBlendEquation");
+ //glBlendEquation = (PFNGLBLENDEQUATIONPROC)wglGetProcAddress("glBlendEquation");
// If that fails try the EXT version
- if (!glBlendEquation) glBlendEquation = (PFNGLBLENDEQUATIONPROC)wglGetProcAddress("glBlendEquationEXT");
+ //if (!glBlendEquation) glBlendEquation = (PFNGLBLENDEQUATIONPROC)wglGetProcAddress("glBlendEquationEXT");
// If that fails use a no-op dummy
- if (!glBlendEquation) glBlendEquation = glBlendEquationDummy;
+ //if (!glBlendEquation) glBlendEquation = glBlendEquationDummy;
if (CheckExtension("GL_ARB_texture_non_power_of_two")) gl.flags|=RFL_NPOT_TEXTURE;
if (CheckExtension("GL_ARB_texture_compression")) gl.flags|=RFL_TEXTURE_COMPRESSION;
@@ -318,9 +318,9 @@ void gl_LoadExtensions()
- glActiveTexture = (PFNGLACTIVETEXTUREPROC)wglGetProcAddress("glActiveTextureARB");
- glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC) wglGetProcAddress("glMultiTexCoord2fARB");
- glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC) wglGetProcAddress("glMultiTexCoord2fvARB");
+ //glActiveTexture = (PFNGLACTIVETEXTUREPROC)wglGetProcAddress("glActiveTextureARB");
+ //glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC) wglGetProcAddress("glMultiTexCoord2fARB");
+ //glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC) wglGetProcAddress("glMultiTexCoord2fvARB");
}
//==========================================================================