summaryrefslogtreecommitdiff
path: root/src/Fl_Gl_Window.cxx
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-09-14 08:53:45 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-09-14 08:53:45 +0200
commit700fb1aadd86f6fc81f4acccfe44dd539f487c57 (patch)
tree8457c2c855f59c680885755ba981d59aee62893b /src/Fl_Gl_Window.cxx
parentf265ca2afc52c5b9fcd7494ac182278ad92f6939 (diff)
Improve virtual void* Fl_Gl_Window_Driver::GetProcAddress(procName)
Diffstat (limited to 'src/Fl_Gl_Window.cxx')
-rw-r--r--src/Fl_Gl_Window.cxx29
1 files changed, 11 insertions, 18 deletions
diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx
index 2842338fe..7784af9cb 100644
--- a/src/Fl_Gl_Window.cxx
+++ b/src/Fl_Gl_Window.cxx
@@ -521,28 +521,21 @@ char Fl_Gl_Window_Driver::swap_type() {return UNDEFINED;}
void* Fl_Gl_Window_Driver::GetProcAddress(const char *procName) {
-#if (HAVE_DLSYM && HAVE_DLFCN_H)
+#if defined(HAVE_GLXGETPROCADDRESSARB)
+ return (void*)glXGetProcAddressARB((const GLubyte *)procName);
+
+#elif (HAVE_DLSYM && HAVE_DLFCN_H)
+# ifdef RTLD_DEFAULT
+ void *rtld_default = RTLD_DEFAULT;
+# else
+ static void *rtld_default = dlopen(0, RTLD_LAZY);
+# endif
char symbol[1024];
-
snprintf(symbol, sizeof(symbol), "_%s", procName);
+ return dlsym(rtld_default, symbol);
-# ifdef RTLD_DEFAULT
- return dlsym(RTLD_DEFAULT, symbol);
-
-# else // No RTLD_DEFAULT support, so open the current a.out symbols...
- static void *rtld_default = dlopen(0, RTLD_LAZY);
-
- if (rtld_default) return dlsym(rtld_default, symbol);
- else return 0;
-
-# endif // RTLD_DEFAULT
-
-#elif defined(HAVE_GLXGETPROCADDRESSARB)
- return (void*)glXGetProcAddressARB((const GLubyte *)procName);
-
-#else
- return 0;
#endif // HAVE_DLSYM
+ return NULL;
}
Fl_Font_Descriptor** Fl_Gl_Window_Driver::fontnum_to_fontdescriptor(int fnum) {