diff --git a/src/modules/graphics/opengl/OpenGL.cpp b/src/modules/graphics/opengl/OpenGL.cpp index a6d7d2aa1..df1092a0c 100644 --- a/src/modules/graphics/opengl/OpenGL.cpp +++ b/src/modules/graphics/opengl/OpenGL.cpp @@ -40,6 +40,10 @@ #include #endif +#ifdef LOVE_ANDROID +#include +#endif + namespace love { namespace graphics @@ -47,6 +51,17 @@ namespace graphics namespace opengl { +static void *LOVEGetProcAddress(const char *name) +{ +#ifdef LOVE_ANDROID + void *proc = dlsym(RTLD_DEFAULT, name); + if (proc) + return proc; +#endif + + return SDL_GL_GetProcAddress(name); +} + OpenGL::OpenGL() : stats() , contextInitialized(false) @@ -67,7 +82,7 @@ bool OpenGL::initContext() if (contextInitialized) return true; - if (!gladLoadGLLoader(SDL_GL_GetProcAddress)) + if (!gladLoadGLLoader(LOVEGetProcAddress)) return false; initOpenGLFunctions();