From e96e3cd0ca2b0b73b063631e62d4bbbd0471d1b4 Mon Sep 17 00:00:00 2001 From: Graham Date: Sun, 3 Oct 2021 08:51:11 +0000 Subject: [PATCH] Reduce duplication --- gl-natives/src/main/c/jaggl.c | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/gl-natives/src/main/c/jaggl.c b/gl-natives/src/main/c/jaggl.c index 8eb14da..025ac93 100644 --- a/gl-natives/src/main/c/jaggl.c +++ b/gl-natives/src/main/c/jaggl.c @@ -98,45 +98,35 @@ #define JAGGL_RELEASE_STRING(env, str) \ (*env)->ReleaseStringUTFChars(env, str, str ## _str) -#if defined(JAGGL_EGL) -#define PFNGLCLIENTACTIVETEXTUREPROC PFNGLCLIENTACTIVETEXTUREARBPROC -#define PFNGLMULTITEXCOORD2FPROC PFNGLMULTITEXCOORD2FARBPROC -#define PFNGLMULTITEXCOORD2IPROC PFNGLMULTITEXCOORD2IARBPROC - -#define JAGGL_FORCE_LOCK(env) _JAGGL_GET(env) -#define JAGGL_FORCE_UNLOCK(env) - -#define JAGGL_LOCK(env) -#define JAGGL_UNLOCK(env) - -#define JAGGL_PROC_ADDR(name) eglGetProcAddress(name) -#elif defined(JAGGL_GLX) +#if defined(JAGGL_EGL) || defined(JAGGL_GLX) +// Mesa is missing some non-ARB PFN typedefs #define PFNGLCLIENTACTIVETEXTUREPROC PFNGLCLIENTACTIVETEXTUREARBPROC #define PFNGLMULTITEXCOORD2FPROC PFNGLMULTITEXCOORD2FARBPROC #define PFNGLMULTITEXCOORD2IPROC PFNGLMULTITEXCOORD2IARBPROC +#endif +#if defined(JAGGL_GLX) +// GLX requires locking around every OpenGL call #define JAGGL_FORCE_LOCK(env) _JAGGL_GET_AND_LOCK(env) #define JAGGL_FORCE_UNLOCK(env) _JAGGL_UNLOCK(env) #define JAGGL_LOCK(env) _JAGGL_GET_AND_LOCK(env) #define JAGGL_UNLOCK(env) _JAGGL_UNLOCK(env) - -#define JAGGL_PROC_ADDR(name) glXGetProcAddressARB((const GLubyte *) name) -#elif defined(JAGGL_WGL) +#else #define JAGGL_FORCE_LOCK(env) _JAGGL_GET(env) #define JAGGL_FORCE_UNLOCK(env) #define JAGGL_LOCK(env) #define JAGGL_UNLOCK(env) +#endif +#if defined(JAGGL_EGL) +#define JAGGL_PROC_ADDR(name) eglGetProcAddress(name) +#elif defined(JAGGL_GLX) +#define JAGGL_PROC_ADDR(name) glXGetProcAddressARB((const GLubyte *) name) +#elif defined(JAGGL_WGL) #define JAGGL_PROC_ADDR(name) wglGetProcAddress(name) #elif defined(JAGGL_CGL) -#define JAGGL_FORCE_LOCK(env) _JAGGL_GET(env) -#define JAGGL_FORCE_UNLOCK(env) - -#define JAGGL_LOCK(env) -#define JAGGL_UNLOCK(env) - #define JAGGL_PROC_ADDR(name) jaggl_proc_addr(name) #else #error Unsupported platform