[Title] Remove symbols of extension functions
authorHaegeun Park <haegeun.park@samsung.com>
Wed, 21 Nov 2012 08:24:02 +0000 (00:24 -0800)
committerHaegeun Park <haegeun.park@samsung.com>
Wed, 21 Nov 2012 08:24:02 +0000 (00:24 -0800)
[Issue#] -
[Problem] -
[Cause] -
[Solution]
Now, The extensions can only be queried from 'eglGetProcAddress'

src/coregl.h
src/coregl_export_gl.c
src/coregl_thread_pthread.c
src/headers/sym_egl.h
src/headers/sym_gl.h
src/headers/sym_glx.h
src/modules/appopt/coregl_appopt.c
src/modules/fastpath/coregl_fastpath_egl.c
src/wraps/coregl_egl.c
src/wraps/coregl_gl.c

index c0ac691..58b5942 100644 (file)
@@ -11,7 +11,9 @@
 
 typedef void (*_eng_fn) (void);
 
+#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
 #include "headers/sym.h"
+#undef _COREGL_EXT_SYMBOL
 
 extern int  coregl_initialize();
 extern void coregl_terminate();
index 00ba646..9b16d4b 100644 (file)
@@ -852,55 +852,3 @@ glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
        ovr_glViewport(x, y, width, height);
 }
 
-
-// GLES Extensions...
-void
-glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
-{
-       ovr_glEGLImageTargetTexture2DOES(target, image);
-}
-
-void
-glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
-{
-       ovr_glEGLImageTargetRenderbufferStorageOES(target, image);
-}
-
-void
-glGetProgramBinary(GLuint program, GLsizei bufsize, GLsizei* length, GLenum* binaryFormat, void* binary)
-{
-       ovr_glGetProgramBinary(program, bufsize, length, binaryFormat, binary);
-}
-
-void
-glProgramBinary(GLuint program, GLenum binaryFormat, const void* binary, GLint length)
-{
-       ovr_glProgramBinary(program, binaryFormat, binary, length);
-}
-
-
-void
-glProgramParameteri(GLuint program, GLuint pname, GLint value)
-{
-       ovr_glProgramParameteri(program, pname, value);
-}
-
-void
-glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
-{
-       ovr_glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height);
-}
-
-void
-glFramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
-{
-       ovr_glFramebufferTexture2DMultisampleEXT(target, attachment, textarget, texture, level, samples);
-}
-
-void
-glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments)
-{
-       ovr_glDiscardFramebufferEXT(target, numAttachments, attachments);
-}
-
-
index a06eb0f..1f6c6c2 100644 (file)
@@ -83,6 +83,7 @@ GLThreadState *
 get_current_thread_state()
 {
        GLThreadState *ret = NULL;
+
        if (thread_key_inited)
        {
                ret = (GLThreadState *)pthread_getspecific(thread_key);
index 21bdeec..af4a1c2 100644 (file)
@@ -3,6 +3,10 @@
 #define _COREGL_SYMBOL_NOT_DEFINED
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     COREGL_API extern RET_TYPE FUNC_NAME PARAM_LIST;
 #endif
+#ifndef _COREGL_EXT_SYMBOL
+#define _COREGL_EXT_SYMBOL_NOT_DEFINED
+#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)   _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
+#endif
 
 // Standard EGL APIs
 
@@ -49,15 +53,20 @@ _COREGL_SYMBOL(GL_FALSE, _eng_fn, eglGetProcAddress, (const char* procname))
 
 
 // Extensions
-_COREGL_SYMBOL(GL_TRUE, EGLImageKHR, eglCreateImageKHR, (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list))
-_COREGL_SYMBOL(GL_TRUE, EGLBoolean, eglDestroyImageKHR, (EGLDisplay dpy, EGLImageKHR image))
+_COREGL_EXT_SYMBOL(GL_TRUE, EGLImageKHR, eglCreateImageKHR, (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list))
+_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglDestroyImageKHR, (EGLDisplay dpy, EGLImageKHR image))
+
+_COREGL_EXT_SYMBOL(GL_TRUE, void*, eglMapImageSEC, (EGLDisplay dpy, EGLImageKHR image))
+_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglUnmapImageSEC, (EGLDisplay dpy, EGLImageKHR image))
+_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglGetImageAttribSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint attribute, EGLint *value))
 
-_COREGL_SYMBOL(GL_TRUE, void*, eglMapImageSEC, (EGLDisplay dpy, EGLImageKHR image))
-_COREGL_SYMBOL(GL_TRUE, EGLBoolean, eglUnmapImageSEC, (EGLDisplay dpy, EGLImageKHR image))
-_COREGL_SYMBOL(GL_TRUE, EGLBoolean, eglGetImageAttribSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint attribute, EGLint *value))
+_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglLockSurfaceKHR, (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list))
+_COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglUnlockSurfaceKHR, (EGLDisplay display, EGLSurface surface))
 
-_COREGL_SYMBOL(GL_TRUE, EGLBoolean, eglLockSurfaceKHR, (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list))
-_COREGL_SYMBOL(GL_TRUE, EGLBoolean, eglUnlockSurfaceKHR, (EGLDisplay display, EGLSurface surface))
+#ifdef _COREGL_EXT_SYMBOL_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL
+#endif
 
 #ifdef _COREGL_SYMBOL_NOT_DEFINED
 #undef _COREGL_SYMBOL_NOT_DEFINED
index 4983840..5334627 100644 (file)
@@ -3,6 +3,10 @@
 #define _COREGL_SYMBOL_NOT_DEFINED
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     COREGL_API extern RET_TYPE FUNC_NAME PARAM_LIST;
 #endif
+#ifndef _COREGL_EXT_SYMBOL
+#define _COREGL_EXT_SYMBOL_NOT_DEFINED
+#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)  _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
+#endif
 
 /* version 1: */
 _COREGL_SYMBOL(GL_FALSE, void, glActiveTexture, (GLenum texture))
@@ -149,14 +153,19 @@ _COREGL_SYMBOL(GL_FALSE, void, glVertexAttribPointer, (GLuint indx, GLint size,
 _COREGL_SYMBOL(GL_FALSE, void, glViewport, (GLint x, GLint y, GLsizei width, GLsizei height))
 
 /* Extensions */
-_COREGL_SYMBOL(GL_TRUE, void, glEGLImageTargetTexture2DOES, (GLenum target, GLeglImageOES image))
-_COREGL_SYMBOL(GL_TRUE, void, glEGLImageTargetRenderbufferStorageOES, (GLenum target, GLeglImageOES image))
-_COREGL_SYMBOL(GL_TRUE, void, glGetProgramBinary, (GLuint program, GLsizei bufsize, GLsizei *length, GLenum *binaryFormat, void *binary))
-_COREGL_SYMBOL(GL_TRUE, void, glProgramBinary, (GLuint program, GLenum binaryFormat, const void *binary, GLint length))
-_COREGL_SYMBOL(GL_TRUE, void, glProgramParameteri, (GLuint a, GLuint b, GLint d))
-_COREGL_SYMBOL(GL_TRUE, void, glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
-_COREGL_SYMBOL(GL_TRUE, void, glFramebufferTexture2DMultisampleEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples))
-_COREGL_SYMBOL(GL_TRUE, void, glDiscardFramebufferEXT, (GLenum target, GLsizei numAttachments, const GLenum *attachments))
+_COREGL_EXT_SYMBOL(GL_TRUE, void, glEGLImageTargetTexture2DOES, (GLenum target, GLeglImageOES image))
+_COREGL_EXT_SYMBOL(GL_TRUE, void, glEGLImageTargetRenderbufferStorageOES, (GLenum target, GLeglImageOES image))
+_COREGL_EXT_SYMBOL(GL_TRUE, void, glGetProgramBinary, (GLuint program, GLsizei bufsize, GLsizei *length, GLenum *binaryFormat, void *binary))
+_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramBinary, (GLuint program, GLenum binaryFormat, const void *binary, GLint length))
+_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramParameteri, (GLuint a, GLuint b, GLint d))
+_COREGL_EXT_SYMBOL(GL_TRUE, void, glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
+_COREGL_EXT_SYMBOL(GL_TRUE, void, glFramebufferTexture2DMultisampleEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples))
+_COREGL_EXT_SYMBOL(GL_TRUE, void, glDiscardFramebufferEXT, (GLenum target, GLsizei numAttachments, const GLenum *attachments))
+
+#ifdef _COREGL_EXT_SYMBOL_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL
+#endif
 
 #ifdef _COREGL_SYMBOL_NOT_DEFINED
 #undef _COREGL_SYMBOL_NOT_DEFINED
index 2aaba66..1e5a157 100644 (file)
@@ -3,6 +3,10 @@
 #define _COREGL_SYMBOL_NOT_DEFINED
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     extern RET_TYPE (*_COREGL_NAME_MANGLE(FUNC_NAME)) PARAM_LIST;
 #endif
+#ifndef _COREGL_EXT_SYMBOL
+#define _COREGL_EXT_SYMBOL_NOT_DEFINED
+#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)  _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
+#endif
 
 _COREGL_SYMBOL(GL_FALSE, _eng_fn, glXGetProcAddress, (const char* procName))
 
@@ -36,6 +40,11 @@ _COREGL_SYMBOL(GL_FALSE, void, glXQueryDrawable, (Display* dpy, XID draw, int at
 _COREGL_SYMBOL(GL_FALSE, int, glXSwapIntervalSGI, (int interval))
 _COREGL_SYMBOL(GL_FALSE, void, glXSwapIntervalEXT, (Display* dpy, GLXDrawable draw, int interval))
 
+#ifdef _COREGL_EXT_SYMBOL_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL
+#endif
+
 #ifdef _COREGL_SYMBOL_NOT_DEFINED
 #undef _COREGL_SYMBOL_NOT_DEFINED
 #undef _COREGL_SYMBOL
index ed54703..181916b 100644 (file)
@@ -5,7 +5,9 @@
 #include <sys/time.h>
 
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     RET_TYPE (*_orig_appopt_##FUNC_NAME) PARAM_LIST = NULL;
-#include "../../headers/sym.h"
+#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
+# include "../../headers/sym.h"
+#undef _COREGL_EXT_SYMBOL
 #undef _COREGL_SYMBOL
 
 void
@@ -55,7 +57,9 @@ void
 appopt_apply_overrides_egl(int enable)
 {
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     COREGL_INIT_ORIGINAL(_orig_appopt_, FUNC_NAME);
+#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
 # include "../../headers/sym_egl.h"
+#undef _COREGL_EXT_SYMBOL
 #undef _COREGL_SYMBOL
 }
 
@@ -63,7 +67,9 @@ void
 appopt_apply_overrides_gl(int enable)
 {
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     COREGL_INIT_ORIGINAL(_orig_appopt_, FUNC_NAME);
+#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
 # include "../../headers/sym_gl.h"
+#undef _COREGL_EXT_SYMBOL
 #undef _COREGL_SYMBOL
 }
 
index fad261d..a2b6bc0 100644 (file)
@@ -1315,9 +1315,13 @@ fastpath_eglGetProcAddress(const char* procname)
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) \
        if (strcmp(procname, #FUNC_NAME) == 0) \
        { \
-               ret = (_eng_fn)FUNC_NAME; \
+               _eng_fn ret_orig = NULL; \
+               ret_orig = _orig_fastpath_eglGetProcAddress(procname); \
+               if (ret_orig != NULL) \
+                       ret = (_eng_fn)ovr_##FUNC_NAME; \
                goto finish; \
        }
+
 #include "../../headers/sym_egl.h"
 #include "../../headers/sym_gl.h"
 #undef _COREGL_SYMBOL
index 0be0226..b3f02de 100644 (file)
@@ -10,7 +10,9 @@ typedef void (*_eng_fn) (void);
 #define COREGL_API           __attribute__((visibility("default")))
 
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     COREGL_API extern RET_TYPE FUNC_NAME PARAM_LIST;
+#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
 # include "../headers/sym_egl.h"
+#undef _COREGL_EXT_SYMBOL
 #undef _COREGL_SYMBOL
 
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     RET_TYPE (*ovr_##FUNC_NAME) PARAM_LIST = NULL;
@@ -35,7 +37,9 @@ coregl_glwrap_init()
 
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) \
    ovr_##FUNC_NAME = (__typeof__(ovr_##FUNC_NAME))dlsym(lib_handle, #FUNC_NAME);
+#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
 #include "../headers/sym_egl.h"
+#undef _COREGL_EXT_SYMBOL
 #undef _COREGL_SYMBOL
 
        return 1;
@@ -281,53 +285,3 @@ eglQueryString(EGLDisplay dpy, EGLint name)
        return ovr_eglQueryString(dpy, name);
 }
 
-EGLImageKHR
-eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)
-{
-       INIT_EXPORT();
-       return ovr_eglCreateImageKHR(dpy, ctx, target, buffer, attrib_list);
-}
-
-EGLBoolean
-eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
-{
-       INIT_EXPORT();
-       return ovr_eglDestroyImageKHR(dpy, image);
-}
-
-void *
-eglMapImageSEC(EGLDisplay dpy, EGLImageKHR image)
-{
-       INIT_EXPORT();
-       return ovr_eglMapImageSEC(dpy, image);
-}
-
-EGLBoolean
-eglUnmapImageSEC(EGLDisplay dpy, EGLImageKHR image)
-{
-       INIT_EXPORT();
-       return ovr_eglUnmapImageSEC(dpy, image);
-}
-
-EGLBoolean
-eglGetImageAttribSEC(EGLDisplay dpy, EGLImageKHR image, EGLint attribute, EGLint *value)
-{
-       INIT_EXPORT();
-       return ovr_eglGetImageAttribSEC(dpy, image, attribute, value);
-}
-
-EGLBoolean
-eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list)
-{
-       INIT_EXPORT();
-       return ovr_eglLockSurfaceKHR(display, surface, attrib_list);
-}
-
-EGLBoolean
-eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface)
-{
-       INIT_EXPORT();
-       return ovr_eglUnlockSurfaceKHR(display, surface);
-}
-
-
index b2578ea..187356d 100644 (file)
@@ -7,7 +7,9 @@
 #define COREGL_API           __attribute__((visibility("default")))
 
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     COREGL_API extern RET_TYPE FUNC_NAME PARAM_LIST;
+#define _COREGL_EXT_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)
 # include "../headers/sym_gl.h"
+#undef _COREGL_EXT_SYMBOL
 #undef _COREGL_SYMBOL
 
 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST)     RET_TYPE (*ovr_##FUNC_NAME) PARAM_LIST = NULL;
@@ -890,56 +892,3 @@ glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
        ovr_glViewport(x, y, width, height);
 }
 
-
-// GLES Extensions...
-void
-glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
-{
-       ovr_glEGLImageTargetTexture2DOES(target, image);
-}
-
-void
-glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
-{
-       ovr_glEGLImageTargetRenderbufferStorageOES(target, image);
-}
-
-void
-glGetProgramBinary(GLuint program, GLsizei bufsize, GLsizei* length, GLenum* binaryFormat, void* binary)
-{
-       ovr_glGetProgramBinary(program, bufsize, length, binaryFormat, binary);
-}
-
-void
-glProgramBinary(GLuint program, GLenum binaryFormat, const void* binary, GLint length)
-{
-       ovr_glProgramBinary(program, binaryFormat, binary, length);
-}
-
-
-void
-glProgramParameteri(GLuint program, GLuint pname, GLint value)
-{
-       ovr_glProgramParameteri(program, pname, value);
-}
-
-void
-glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
-{
-       ovr_glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height);
-}
-
-void
-glFramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
-{
-       ovr_glFramebufferTexture2DMultisampleEXT(target, attachment, textarget, texture, level, samples);
-}
-
-void
-glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments)
-{
-       ovr_glDiscardFramebufferEXT(target, numAttachments, attachments);
-}
-
-
-