diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-09-14 08:53:45 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-09-14 08:53:45 +0200 |
| commit | 700fb1aadd86f6fc81f4acccfe44dd539f487c57 (patch) | |
| tree | 8457c2c855f59c680885755ba981d59aee62893b /src/Fl_Gl_Window.cxx | |
| parent | f265ca2afc52c5b9fcd7494ac182278ad92f6939 (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.cxx | 29 |
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) { |
