X-Git-Url: https://git.cworth.org/git?p=fips;a=blobdiff_plain;f=eglwrap.c;h=913532ef023df21c7b6765a82f25649a7f0de237;hp=43b07babcf049a113a6729a1e41086e41b33a431;hb=HEAD;hpb=8209db451b878656c1751223fb3d3f4a9df159e4 diff --git a/eglwrap.c b/eglwrap.c index 43b07ba..913532e 100644 --- a/eglwrap.c +++ b/eglwrap.c @@ -25,6 +25,8 @@ #include +#include "context.h" +#include "eglwrap.h" #include "dlwrap.h" #include "metrics.h" @@ -48,7 +50,12 @@ } while (0); -static void * +/* Note: We only need to perform a lookup in libEGL.so.1, (not + * libGLESv2.so.2). This is because the functions we wrap, (currently + * eglSwapBufers, eglGetProcAddress, and eglMakeCurrent), exist only + * in libEGL.so.1. + */ +void * eglwrap_lookup (char *name) { const char *libegl_filename = "libEGL.so.1"; @@ -72,7 +79,12 @@ eglSwapBuffers (EGLDisplay dpy, EGLSurface surface) EGLBoolean ret; EGLWRAP_DEFER_WITH_RETURN (ret, eglSwapBuffers, dpy, surface); - metrics_end_frame (); + + context_counter_stop (); + + context_end_frame (); + + context_counter_start (); return ret; } @@ -98,9 +110,11 @@ eglMakeCurrent (EGLDisplay display, EGLSurface draw, EGLSurface read, { EGLBoolean ret; - fips_dispatch_init (FIPS_API_EGL); + context_leave (); EGLWRAP_DEFER_WITH_RETURN (ret, eglMakeCurrent, display, draw, read, context); + context_enter (FIPS_API_EGL, context); + return ret; }