From 4ca3a4fd45f0bce7eaaf2ef489279e9e5b5286ae Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 23 Nov 2005 15:25:56 +0000 Subject: [PATCH] Changed the linux implement of getGLExtensionFuncPtr to querry for glXGetProcAddressARB and then use this if its available, otherwise fallback to the original dlsym usage. --- src/osg/GLExtensions.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/osg/GLExtensions.cpp b/src/osg/GLExtensions.cpp index d445b6787..26d72defb 100644 --- a/src/osg/GLExtensions.cpp +++ b/src/osg/GLExtensions.cpp @@ -245,6 +245,20 @@ void* osg::getGLExtensionFuncPtr(const char *funcName) return dlsym( RTLD_DEFAULT, funcName ); +#elif defined (__linux__) + + typedef void (*__GLXextFuncPtr)(void); + typedef __GLXextFuncPtr (*GetProcAddressARBProc)(const char*); + static GetProcAddressARBProc s_glXGetProcAddressARB = (GetProcAddressARBProc)dlsym(0, "glXGetProcAddressARB"); + if (s_glXGetProcAddressARB) + { + return (void*) (s_glXGetProcAddressARB)(funcName); + } + else + { + return dlsym(0, funcName); + } + #else // all other unixes return dlsym(0, funcName);