diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d096c028..a1110f1f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,5 +29,5 @@ add_library(core STATIC if (WIN32) target_link_libraries(core ole32 comctl32 ws2_32 opengl32) else() - target_link_libraries(core GL) + target_link_libraries(core GL EGL) endif() diff --git a/src/libui_sdl/libui/unix/gl.c b/src/libui_sdl/libui/unix/gl.c index 6965969d..4a180ef0 100644 --- a/src/libui_sdl/libui/unix/gl.c +++ b/src/libui_sdl/libui/unix/gl.c @@ -2,8 +2,8 @@ #include "uipriv_unix.h" #include - -void* glXGetProcAddressARB(const GLubyte* name); +#include +#include extern GThread* gtkthread; extern GMutex glmutex; @@ -220,10 +220,15 @@ void *uiGLGetProcAddress(const char* proc) { // TODO: consider using epoxy or something funny - void* ptr = dlsym(NULL /* RTLD_DEFAULT */, proc); + void* ptr; + + ptr = glXGetProcAddressARB((const GLubyte*)proc); if (ptr) return ptr; - ptr = glXGetProcAddressARB((const GLubyte*)proc); + ptr = eglGetProcAddress(proc); + if (ptr) return ptr; + + ptr = dlsym(NULL /* RTLD_DEFAULT */, proc); if (ptr) return ptr; return NULL;