From b9529e83619f1e2b725ea86508b546d72e072a0c Mon Sep 17 00:00:00 2001 From: StapleButter Date: Sat, 1 Jun 2019 00:27:54 +0200 Subject: [PATCH] Linux: fix uiGLGetProcAddress() --- src/CMakeLists.txt | 2 +- src/libui_sdl/libui/unix/gl.c | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d096c02878..a1110f1f8c 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 6965969d2e..4a180ef0ef 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 = eglGetProcAddress(proc); if (ptr) return ptr; - ptr = glXGetProcAddressARB((const GLubyte*)proc); + ptr = dlsym(NULL /* RTLD_DEFAULT */, proc); if (ptr) return ptr; return NULL;