From: Carl Worth Date: Mon, 24 Jun 2013 22:44:47 +0000 (-0700) Subject: EGL: Add wrapper for eglGetProcAddress X-Git-Url: https://git.cworth.org/git?p=fips;a=commitdiff_plain;h=8209db451b878656c1751223fb3d3f4a9df159e4;ds=sidebyside EGL: Add wrapper for eglGetProcAddress If an EGL-using program uses eglGetProcAddress to locate functions, we want to intercept that to return our own versions of the functions, (to add out metrics timings, etc.). If the requested function is not implemented in our library, just defer to the real, underlying eglGetProcAddress function to find the symbol. --- diff --git a/eglwrap.c b/eglwrap.c index 913fd48..43b07ba 100644 --- a/eglwrap.c +++ b/eglwrap.c @@ -77,6 +77,21 @@ eglSwapBuffers (EGLDisplay dpy, EGLSurface surface) return ret; } +void (*eglGetProcAddress (char const *func))(void) +{ + void *ret; + + /* If our library has this symbol, that's what we want to give. */ + ret = dlwrap_real_dlsym (NULL, (const char *) func); + if (ret) + return ret; + + /* Otherwise, just defer to the real eglGetProcAddress */ + EGLWRAP_DEFER_WITH_RETURN (ret, eglGetProcAddress, func); + + return ret; +} + EGLBoolean eglMakeCurrent (EGLDisplay display, EGLSurface draw, EGLSurface read, EGLContext context)