aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-08-07 08:30:11 +0200
committerdec05eba <dec05eba@protonmail.com>2024-08-07 08:30:23 +0200
commit81050e426bbd7e5cd53820ebd3c2a4a42cc18c6f (patch)
treeb76626e4c40389224518f04d80fb954448f750ab
parentfb73de12aecca5d14bf73326a977c87ac6c47949 (diff)
load eglGetProcAddress
-rw-r--r--include/mgl/gl.h2
-rw-r--r--src/gl.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/include/mgl/gl.h b/include/mgl/gl.h
index dace8ef..3a96241 100644
--- a/include/mgl/gl.h
+++ b/include/mgl/gl.h
@@ -22,6 +22,7 @@ typedef uintptr_t EGLNativeWindowType;
typedef void* EGLConfig;
typedef void* EGLSurface;
typedef void* EGLContext;
+typedef void (*__eglMustCastToProperFunctionPointerType)(void);
typedef struct {
void *gl_library;
@@ -36,6 +37,7 @@ typedef struct {
GLXFBConfig* (*glXChooseFBConfig)(Display *dpy, int screen, const int *attribList, int *nitems);
_XVisualInfo* (*glXGetVisualFromFBConfig)(Display *dpy, GLXFBConfig config);
+ __eglMustCastToProperFunctionPointerType (*eglGetProcAddress)(const char *procname);
EGLDisplay (*eglGetDisplay)(EGLNativeDisplayType display_id);
unsigned int (*eglInitialize)(EGLDisplay dpy, int32_t *major, int32_t *minor);
unsigned int (*eglTerminate)(EGLDisplay dpy);
diff --git a/src/gl.c b/src/gl.c
index 6d2c0fe..d905eb0 100644
--- a/src/gl.c
+++ b/src/gl.c
@@ -131,6 +131,7 @@ static int mgl_gl_load_glx(mgl_gl *self) {
static int mgl_gl_load_egl(mgl_gl *self) {
const dlsym_assign required_dlsym[] = {
+ { (void**)&self->eglGetProcAddress, "eglGetProcAddress" },
{ (void**)&self->eglGetDisplay, "eglGetDisplay" },
{ (void**)&self->eglInitialize, "eglInitialize" },
{ (void**)&self->eglTerminate, "eglTerminate" },