]> git.cworth.org Git - fips/commitdiff
EGL: Add wrapper for eglGetProcAddress
authorCarl Worth <cworth@cworth.org>
Mon, 24 Jun 2013 22:44:47 +0000 (15:44 -0700)
committerCarl Worth <cworth@cworth.org>
Mon, 24 Jun 2013 22:44:47 +0000 (15:44 -0700)
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.

eglwrap.c

index 913fd488d74a23dc0d7a9277dfe37525e3db776f..43b07babcf049a113a6729a1e41086e41b33a431 100644 (file)
--- 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)