Separate GLES API according to version 51/76151/7
authorZhaowei Yuan <zhaowei.yuan@samsung.com>
Wed, 22 Jun 2016 15:20:35 +0000 (23:20 +0800)
committerMun, Gwan-gyeong <kk.moon@samsung.com>
Mon, 4 Jul 2016 07:39:26 +0000 (16:39 +0900)
This patch separates GLES API into 2 individual librays:
libGLESv1_CM.so.1.1 & libGLESv2.so.2.0
code changes:
1. Divide coregl_gl.c into coregl1.c, coregl2.c and coregl_common.c
2. Divide sym_gl.h into sym_gl1.h, sym_gl2.h and sym_gl_common.h
3. Remove fastpath and tracepath support for GLES1.1 APIs

Signed-off-by: Zhaowei Yuan <zhaowei.yuan@samsung.com>
Change-Id: I178cb4b0926236219f031fbf0c898e238faf1dee

26 files changed:
CMakeLists.txt
Makefile
packaging/coregl.spec
src/coregl.c
src/coregl_export.c
src/coregl_export_gl.c
src/coregl_internal.h
src/coregl_override.c [deleted file]
src/headers/sym.h
src/headers/sym_gl1.h [new file with mode: 0644]
src/headers/sym_gl2.h [moved from src/headers/sym_gl.h with 73% similarity]
src/headers/sym_gl_common.h [new file with mode: 0644]
src/modules/appopt/coregl_appopt.c
src/modules/coregl_module.c
src/modules/fastpath/coregl_fastpath.c
src/modules/fastpath/coregl_fastpath.h
src/modules/fastpath/coregl_fastpath_egl.c
src/modules/fastpath/coregl_fastpath_gl.c
src/modules/fastpath/coregl_fastpath_state.h
src/modules/tracepath/coregl_tracepath.c
src/modules/tracepath/coregl_tracepath.h
src/modules/tracepath/coregl_tracepath_egl.c
src/modules/tracepath/coregl_tracepath_gl.c
src/wraps/coregl_gl1.c [new file with mode: 0644]
src/wraps/coregl_gl2.c [moved from src/wraps/coregl_gl.c with 71% similarity]
src/wraps/coregl_gl_common.c [new file with mode: 0644]

index 8518b45..39bd6ad 100644 (file)
@@ -8,10 +8,13 @@ SET(COREGL_VERSION_MAJOR 4)
 SET(COREGL_VERSION_MINOR 0)
 SET(EGL_VERSION_MAJOR 1)
 SET(EGL_VERSION_MINOR 4)
+SET(GLES1_VERSION_MAJOR 1)
+SET(GLES1_VERSION_MINOR 1)
 SET(GLES2_VERSION_MAJOR 2)
 SET(GLES2_VERSION_MINOR 0)
 SET(COREGL_VERSION "${COREGL_VERSION_MAJOR}.${COREGL_VERSION_MINOR}")
 SET(EGL_VERSION "${EGL_VERSION_MAJOR}.${EGL_VERSION_MINOR}")
+SET(GLES1_VERSION "${GLES1_VERSION_MAJOR}.${GLES1_VERSION_MINOR}")
 SET(GLES2_VERSION "${GLES2_VERSION_MAJOR}.${GLES2_VERSION_MINOR}")
 SET(BUILD_ARCH "$ENV{RPM_ARCH}")
 
@@ -88,12 +91,23 @@ SET(EGL "EGL")
 SET(EGL_SRCS_common
                src/wraps/coregl_egl.c
 )
+
+#################################################################
+# Build gles1 Library
+# ------------------------------
+SET(GLES1 "GLESv1_CM")
+SET(GLES1_SRCS_common
+               src/wraps/coregl_gl1.c
+               src/wraps/coregl_gl_common.c
+)
+
 #################################################################
 # Build gles2 Library
 # ------------------------------
 SET(GLES2 "GLESv2")
 SET(GLES2_SRCS_common
-               src/wraps/coregl_gl.c
+               src/wraps/coregl_gl2.c
+               src/wraps/coregl_gl_common.c
 )
 
 #SET(HEADERS_common src/coregl_export.h src/coregl_fastpath.h src/coregl_fastpath_state.h src/coregl.h src/coregl_internal.h src/coregl_thread_pthread.h src/coregl_wrappath.h)
@@ -121,6 +135,12 @@ SET_TARGET_PROPERTIES(${EGL} PROPERTIES VERSION ${EGL_VERSION})
 #SET_TARGET_PROPERTIES(${COREGL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_common})
 TARGET_LINK_LIBRARIES(${EGL} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g -O2 -fvisibility=hidden -Wall -std=c99 -lpthread")
 
+ADD_LIBRARY(${GLES1} SHARED ${GLES1_SRCS_common})
+SET_TARGET_PROPERTIES(${GLES1} PROPERTIES SOVERSION ${GLES1_VERSION_MAJOR})
+SET_TARGET_PROPERTIES(${GLES1} PROPERTIES VERSION ${GLES1_VERSION})
+#SET_TARGET_PROPERTIES(${COREGL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_common})
+TARGET_LINK_LIBRARIES(${GLES1} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g -O2 -fvisibility=hidden -Wall -std=c99 -lpthread")
+
 ADD_LIBRARY(${GLES2} SHARED ${GLES2_SRCS_common})
 SET_TARGET_PROPERTIES(${GLES2} PROPERTIES SOVERSION ${GLES2_VERSION_MAJOR})
 SET_TARGET_PROPERTIES(${GLES2} PROPERTIES VERSION ${GLES2_VERSION})
@@ -129,6 +149,7 @@ TARGET_LINK_LIBRARIES(${GLES2} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g
 
 INSTALL(TARGETS ${COREGL} DESTINATION lib COMPONENT RuntimeLibraries)
 INSTALL(TARGETS ${EGL} DESTINATION lib COMPONENT RuntimeLibraries)
+INSTALL(TARGETS ${GLES1} DESTINATION lib COMPONENT RuntimeLibraries)
 INSTALL(TARGETS ${GLES2} DESTINATION lib COMPONENT RuntimeLibraries)
 
 #FOREACH(hfile ${HEADERS_common})
index 2f57765..9075165 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -44,23 +44,29 @@ COREGL_MINOR = 0
 EGL_MAJOR = 1
 EGL_MINOR = 4
 
+GLESv1_MAJOR = 1
+GLESv1_MINOR = 1
+
 GLESv2_MAJOR = 2
 GLESv2_MINOR = 0
 
 WRAP_EGL = libEGL.so
+WRAP_GLES1 = libGLESv1_CM.so
 WRAP_GLES2 = libGLESv2.so
 
 OUTPUT_BIN = $(BIN).$(COREGL_MAJOR).$(COREGL_MINOR)
 OUTPUT_WRAP_EGL = $(WRAP_EGL).$(EGL_MAJOR).$(EGL_MINOR)
+OUTPUT_WRAP_GLES1 = $(WRAP_GLES1).$(GLESv1_MAJOR).$(GLESv1_MINOR)
 OUTPUT_WRAP_GLES2 = $(WRAP_GLES2).$(GLESv2_MAJOR).$(GLESv2_MINOR)
 
 OBJECTS = $(SOURCES:.c=.o)
 
-all : $(OUTPUT_BIN) $(OUTPUT_WRAP_EGL) $(OUTPUT_WRAP_GLES2)
+all : $(OUTPUT_BIN) $(OUTPUT_WRAP_EGL) $(OUTPUT_WRAP_GLES1) $(OUTPUT_WRAP_GLES2)
        cp src/headers/egl.h include/EGL/def_egl.h
        cp src/headers/gl.h include/GLES3/def_gl.h
        cp src/headers/sym_egl.h include/EGL/sym_egl.h
-       cp src/headers/sym_gl.h include/GLES3/sym_gl.h
+       cp src/headers/sym_gl1.h include/GLES3/sym_gl1.h
+       cp src/headers/sym_gl2.h include/GLES3/sym_gl2.h
 
 $(OUTPUT_BIN) : $(OBJECTS)
        @mkdir -p lib
@@ -74,9 +80,15 @@ $(OUTPUT_WRAP_EGL) :
        ln -sf $(OUTPUT_WRAP_EGL) lib/$(WRAP_EGL).$(EGL_MAJOR)
        ln -sf $(WRAP_EGL).$(EGL_MAJOR) lib/$(WRAP_EGL)
 
+$(OUTPUT_WRAP_GLES1) :
+       @mkdir -p lib
+       $(CC) -shared -o lib/$(OUTPUT_WRAP_GLES1) src/wraps/coregl_gl1.c src/wraps/coregl_gl_common.c $(CFLAGS) $(LDFLAGS)
+       ln -sf $(OUTPUT_WRAP_GLES1) lib/$(WRAP_GLES1).$(GLESv1_MAJOR)
+       ln -sf $(WRAP_GLES1).$(GLESv1_MAJOR) lib/$(WRAP_GLES1)
+
 $(OUTPUT_WRAP_GLES2) :
        @mkdir -p lib
-       $(CC) -shared -o lib/$(OUTPUT_WRAP_GLES2) src/wraps/coregl_gl.c $(CFLAGS) $(LDFLAGS)
+       $(CC) -shared -o lib/$(OUTPUT_WRAP_GLES2) src/wraps/coregl_gl2.c src/wraps/coregl_gl_common.c $(CFLAGS) $(LDFLAGS)
        ln -sf $(OUTPUT_WRAP_GLES2) lib/$(WRAP_GLES2).$(GLESv2_MAJOR)
        ln -sf $(WRAP_GLES2).$(GLESv2_MAJOR) lib/$(WRAP_GLES2)
 
index f1959c2..d83b233 100644 (file)
@@ -64,15 +64,18 @@ ln -sf libCOREGL.so.4.0                             %{buildroot}%{_libdir}/libCOREGL.so.4
 ln -sf libCOREGL.so.4                          %{buildroot}%{_libdir}/libCOREGL.so
 cp libEGL.so.1.4                                       %{buildroot}%{_libdir}/
 cp libGLESv2.so.2.0                                    %{buildroot}%{_libdir}/
+cp libGLESv1_CM.so.1.1                         %{buildroot}%{_libdir}/
 %else
 ln -sf driver/libEGL.so.1.4                    %{buildroot}%{_libdir}/libEGL.so.1.4
 ln -sf driver/libGLESv2.so.2.0         %{buildroot}%{_libdir}/libGLESv2.so.2.0
+ln -sf driver/libGLESv1_CM.so.1.1      %{buildroot}%{_libdir}/libGLESv1_CM.so.1.1
 %endif
 ln -sf libEGL.so.1.4                           %{buildroot}%{_libdir}/libEGL.so.1
 ln -sf libEGL.so.1                                     %{buildroot}%{_libdir}/libEGL.so
 ln -sf libGLESv2.so.2.0                                %{buildroot}%{_libdir}/libGLESv2.so.2
 ln -sf libGLESv2.so.2                          %{buildroot}%{_libdir}/libGLESv2.so
-ln -sf libGLESv2.so                            %{buildroot}%{_libdir}/libGLESv1_CM.so.1.1
+ln -sf libGLESv1_CM.so.1.1                     %{buildroot}%{_libdir}/libGLESv1_CM.so.1
+ln -sf libGLESv1_CM.so.1                       %{buildroot}%{_libdir}/libGLESv1_CM.so
 
 # devel pkg
 mkdir -p %{buildroot}%{_includedir}
index 7bf8903..b0f486b 100644 (file)
 #include "coregl_export.h"
 
 void               *egl_lib_handle;
-void               *glv1_lib_handle;
-void               *glv2_lib_handle;
+void               *gl_lib_handle;
 
-int                 driver_gl_version = COREGL_GLAPI_2;
+int                 driver_gl_version = 0;
 static int          api_gl_version = COREGL_GLAPI_2;
 
 #ifndef _COREGL_VENDOR_EGL_LIB_PATH
@@ -91,12 +90,12 @@ _sym_missing()
 }
 
 #define FINDGLSYM(libhandle, getproc, dst, sym) \
-   if(api_gl_version <= driver_gl_version) { \
+       if(api_gl_version <= driver_gl_version) { \
       if (!dst || (void *)dst == (void *)_sym_missing) \
                  if (getproc) dst = (__typeof__(dst))getproc(sym); \
       if (!dst || (void *)dst == (void *)_sym_missing) \
                  dst = (__typeof__(dst))dlsym(libhandle, sym); \
-         if (!dst) dst = (__typeof__(dst))_sym_missing;\
+         if (!dst) dst = (__typeof__(dst))_sym_missing; \
    }
 
 #define FINDEGLSYM(libhandle, getproc, dst, sym) { \
@@ -110,9 +109,6 @@ _sym_missing()
 static int
 _glue_sym_init(void)
 {
-
-#define _COREGL_START_API(version)             api_gl_version = version;
-#define _COREGL_END_API(version)               api_gl_version = COREGL_GLAPI_2;
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) \
     FINDEGLSYM(egl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME);
 #define _COREGL_EXT_SYMBOL_ALIAS(FUNC_NAME, ALIAS_NAME) \
@@ -122,8 +118,6 @@ _glue_sym_init(void)
 
 #undef _COREGL_EXT_SYMBOL_ALIAS
 #undef _COREGL_SYMBOL
-#undef _COREGL_START_API
-#undef _COREGL_END_API
 
        return 1;
 }
@@ -135,21 +129,13 @@ _gl_sym_init(void)
 #define _COREGL_START_API(version)             api_gl_version = version;
 #define _COREGL_END_API(version)               api_gl_version = COREGL_GLAPI_2;
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) \
-       if(glv2_lib_handle) {   \
-               FINDGLSYM(glv2_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME);\
-       }       \
-       else {  \
-               FINDGLSYM(glv1_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME);\
-       }
+       FINDGLSYM(gl_lib_handle, _sym_eglGetProcAddress, _sym_##FUNC_NAME, #FUNC_NAME);
 #define _COREGL_EXT_SYMBOL_ALIAS(FUNC_NAME, ALIAS_NAME) \
-       if(glv2_lib_handle) {   \
-               FINDGLSYM(glv2_lib_handle, _sym_eglGetProcAddress, _sym_##ALIAS_NAME, #FUNC_NAME);\
-       }       \
-       else {  \
-               FINDGLSYM(glv1_lib_handle, _sym_eglGetProcAddress, _sym_##ALIAS_NAME, #FUNC_NAME);\
-       }
+       FINDGLSYM(gl_lib_handle, _sym_eglGetProcAddress, _sym_##ALIAS_NAME, #FUNC_NAME);
 
-#include "headers/sym_gl.h"
+#include "headers/sym_gl1.h"
+#include "headers/sym_gl2.h"
+#include "headers/sym_gl_common.h"
 
 #undef _COREGL_EXT_SYMBOL_ALIAS
 #undef _COREGL_SYMBOL
@@ -168,6 +154,11 @@ COREGL_API void coregl_symbol_exported()
        COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL)\E[0m\n");
 }
 
+COREGL_API void set_driver_gl_version(int version)
+{
+       driver_gl_version = version;
+}
+
 static int
 _gl_lib_init(void)
 {
@@ -177,69 +168,63 @@ _gl_lib_init(void)
        if (!egl_lib_handle) {
                COREGL_ERR("\E[40;31;1m%s\E[0m\n\n", dlerror());
                COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> %s)\E[0m\n",
-                          _COREGL_VENDOR_EGL_LIB_PATH);
+                       _COREGL_VENDOR_EGL_LIB_PATH);
                return 0;
        }
 
        // test for invalid linking egl
        if (dlsym(egl_lib_handle, "coregl_symbol_exported")) {
                COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> %s)\E[0m\n",
-                          _COREGL_VENDOR_EGL_LIB_PATH);
+                       _COREGL_VENDOR_EGL_LIB_PATH);
                return 0;
        }
 
        // use gl_lib handle for GL symbols
-       glv1_lib_handle = dlopen(_COREGL_VENDOR_GLV1_LIB_PATH, RTLD_LAZY | RTLD_LOCAL);
-       if(!glv1_lib_handle) {
-               COREGL_ERR("\E[40;31;1m%s\E[0m\n\n", dlerror());
-               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> %s)\E[0m\n",
-                       _COREGL_VENDOR_GLV1_LIB_PATH);
-       }
-       else {
-               driver_gl_version = COREGL_GLAPI_1;
-               // test for invalid linking gl
-               if (dlsym(glv1_lib_handle, "coregl_symbol_exported")) {
+       if (driver_gl_version == COREGL_GLAPI_1) {
+               gl_lib_handle = dlopen(_COREGL_VENDOR_GLV1_LIB_PATH, RTLD_LAZY | RTLD_LOCAL);
+               if(!gl_lib_handle) {
+                       COREGL_ERR("\E[40;31;1m%s\E[0m\n\n", dlerror());
                        COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> %s)\E[0m\n",
-                                  _COREGL_VENDOR_GLV1_LIB_PATH);
-                       return 0;
-               }
-       }
-
-       glv2_lib_handle = dlopen(_COREGL_VENDOR_GLV2_LIB_PATH, RTLD_LAZY | RTLD_LOCAL);
-       if (!glv2_lib_handle) {
-               COREGL_ERR("\E[40;31;1m%s\E[0m\n\n", dlerror());
-               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> %s)\E[0m\n",
-                       _COREGL_VENDOR_GLV2_LIB_PATH);
-               if(!glv1_lib_handle) {
-                       return 0;
+                               _COREGL_VENDOR_GLV1_LIB_PATH);
                }
                else {
+                       // test for invalid linking gl
+                       if (dlsym(gl_lib_handle, "coregl_symbol_exported")) {
+                               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> %s)\E[0m\n",
+                                       _COREGL_VENDOR_GLV1_LIB_PATH);
+                               return 0;
+                       }
                        COREGL_LOG("[CoreGL] Driver GL version 1.1 \n");
                }
        }
-       else {
-               driver_gl_version = COREGL_GLAPI_2;
-               // test for invalid linking gl
-               if (dlsym(glv2_lib_handle, "coregl_symbol_exported")) {
+       else if (driver_gl_version == COREGL_GLAPI_2) {
+               gl_lib_handle = dlopen(_COREGL_VENDOR_GLV2_LIB_PATH, RTLD_LAZY | RTLD_LOCAL);
+               if (!gl_lib_handle) {
+                       COREGL_ERR("\E[40;31;1m%s\E[0m\n\n", dlerror());
                        COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> %s)\E[0m\n",
-                                  _COREGL_VENDOR_GLV2_LIB_PATH);
-                       return 0;
+                               _COREGL_VENDOR_GLV2_LIB_PATH);
                }
-
-               // test for a GLES 3.0 symbol
-               if (dlsym(glv2_lib_handle, "glBindProgramPipeline")) {
-                       COREGL_LOG("[CoreGL] Driver GL version 3.1 \n");
-                       driver_gl_version = COREGL_GLAPI_31;
-               } else if (dlsym(glv2_lib_handle, "glReadBuffer")) {
-                       COREGL_LOG("[CoreGL] Driver GL version 3.0 \n");
-                       driver_gl_version = COREGL_GLAPI_3;
-               } else {
-                       COREGL_LOG("[CoreGL] Driver GL version 2.0 \n");
+               else {
+                       // test for invalid linking gl
+                       if (dlsym(gl_lib_handle, "coregl_symbol_exported")) {
+                               COREGL_ERR("\E[40;31;1mInvalid library link! (Check linkage of libCOREGL -> %s)\E[0m\n",
+                                       _COREGL_VENDOR_GLV2_LIB_PATH);
+                               return 0;
+                       }
+
+                       // test for a GLES 3.0 symbol
+                       if (dlsym(gl_lib_handle, "glBindProgramPipeline")) {
+                               COREGL_LOG("[CoreGL] Driver GL version 3.1 \n");
+                               driver_gl_version = COREGL_GLAPI_31;
+                       } else if (dlsym(gl_lib_handle, "glReadBuffer")) {
+                               COREGL_LOG("[CoreGL] Driver GL version 3.0 \n");
+                               driver_gl_version = COREGL_GLAPI_3;
+                       } else {
+                               COREGL_LOG("[CoreGL] Driver GL version 2.0 \n");
+                       }
                }
        }
 
-       //------------------------------------------------//
-
        if (!_glue_sym_init()) return 0;
        if (!_gl_sym_init()) return 0;
 
@@ -250,8 +235,7 @@ static int
 _gl_lib_deinit(void)
 {
        if (egl_lib_handle) dlclose(egl_lib_handle);
-       if (glv1_lib_handle) dlclose(glv1_lib_handle);
-       if (glv2_lib_handle) dlclose(glv2_lib_handle);
+       if (gl_lib_handle) dlclose(gl_lib_handle);
 
        return 1;
 }
index a2082a0..4215f15 100644 (file)
@@ -17,15 +17,26 @@ _clean_overrides()
 {
 #define _COREGL_START_API(version) api_gl_version = version;
 #define _COREGL_END_API(version) api_gl_version = COREGL_GLAPI_2;
+
 #define OVERRIDE(f) \
-       if(api_gl_version<=driver_gl_version) COREGL_OVERRIDE_API(ovr_, f, _sym_)
+               COREGL_OVERRIDE_API(ovr_, f, _sym_)
 
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     OVERRIDE(FUNC_NAME);
 # include "headers/sym_egl.h"
 #undef _COREGL_SYMBOL
+#undef OVERRIDE
 
+#define OVERRIDE(f) \
+       if(api_gl_version<=driver_gl_version) COREGL_OVERRIDE_API(ovr_, f, _sym_)
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     OVERRIDE(FUNC_NAME);
-# include "headers/sym_gl.h"
+if(driver_gl_version == COREGL_GLAPI_1) {
+       #include "headers/sym_gl1.h"
+       #include "headers/sym_gl_common.h"
+}
+else if(driver_gl_version >= COREGL_GLAPI_2) {
+       #include "headers/sym_gl2.h"
+       #include "headers/sym_gl_common.h"
+}
 #undef _COREGL_SYMBOL
 
 #undef OVERRIDE
index 8ef4034..0deda45 100644 (file)
@@ -510,6 +510,13 @@ coregl_api_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid
 {
        ovr_glVertexPointer(size, type, stride, pointer);
 }
+
+/* Khronos GLES 1.1 CTS requires glPointSizePointerOES as shared library symbol.*/
+void
+coregl_api_glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+       ovr_glPointSizePointerOES(type, stride, pointer);
+}
 /* Ending of OpenGL ES 1.1*/
 
 void
index d1c587b..c1a8965 100644 (file)
@@ -79,6 +79,7 @@ typedef GLuint       GLuintmask;
 #define COREGL_GLAPI_3 3
 #define COREGL_GLAPI_2 2
 #define COREGL_GLAPI_1 1
+#define COREGL_GLAPI_1_2_COMMON 1
 
 
 #define _COREGL_INT_INIT_VALUE -3
diff --git a/src/coregl_override.c b/src/coregl_override.c
deleted file mode 100644 (file)
index 3355b65..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "coregl_internal.h"
-#include "coregl_export.h"
-
-#include <stdlib.h>
-
-void
-init_overrides()
-{
-#define C_ORD(f) COREGL_OVERRIDE_API(ovr_, f, _sym_)
-
-#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     C_ORD(FUNC_NAME);
-# include "headers/sym_egl.h"
-#undef _COREGL_SYMBOL
-
-#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     C_ORD(FUNC_NAME);
-# include "headers/sym_gl.h"
-#undef _COREGL_SYMBOL
-
-#undef C_ORD
-}
-
index 57dd22a..1465b3f 100644 (file)
@@ -1,6 +1,8 @@
 // Include all symbols
 
-#include "sym_gl.h"
+#include "sym_gl1.h"
+#include "sym_gl2.h"
+#include "sym_gl_common.h"
 
 #include "sym_egl.h"
 
diff --git a/src/headers/sym_gl1.h b/src/headers/sym_gl1.h
new file mode 100644 (file)
index 0000000..0310a60
--- /dev/null
@@ -0,0 +1,191 @@
+// Defult use-case for exporting symbols
+#ifndef _COREGL_SYMBOL
+#define _COREGL_SYMBOL_NOT_DEFINED
+#define _COREGL_SYMBOL(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(RET_TYPE, FUNC_NAME, PARAM_LIST) _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
+#endif
+#ifndef _COREGL_EXT_SYMBOL_ALIAS
+#define _COREGL_EXT_SYMBOL_ALIAS_NOT_DEFINED
+#define _COREGL_EXT_SYMBOL_ALIAS(FUNC_NAME, ALIAS_NAME)
+#endif
+#ifndef _COREGL_FASTPATH_SUPPORTED_EXTENSION
+#define _COREGL_FASTPATH_SUPPORTED_EXTENSION_NOT_DEFINED
+#define _COREGL_FASTPATH_SUPPORTED_EXTENSION(NAME, MINVER, MAXVER)
+#endif
+#ifndef _COREGL_EXT_SYMBOL_FASTPATH_PASS
+#define _COREGL_EXT_SYMBOL_FASTPATH_PASS_NOT_DEFINED
+#define _COREGL_EXT_SYMBOL_FASTPATH_PASS(FUNC_NAME)
+#endif
+#ifndef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK
+#define _COREGL_EXT_SYMBOL_FASTPATH_BLOCK_NOT_DEFINED
+#define _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(FUNC_NAME)
+#endif
+
+#ifndef _COREGL_START_API
+#define _COREGL_START_API(VERSION)
+#define _COREGL_START_API_DEFINED_INSIDE
+#endif
+
+#ifndef _COREGL_END_API
+#define _COREGL_END_API(VERSION)
+#define _COREGL_END_API_DEFINED_INSIDE
+#endif
+
+_COREGL_START_API(COREGL_GLAPI_1)
+_COREGL_SYMBOL(void, glAlphaFunc, (GLenum func, GLclampf ref))
+_COREGL_SYMBOL(void, glClipPlanef, (GLenum plane, const GLfloat *equation))
+_COREGL_SYMBOL(void, glColor4f, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha))
+_COREGL_SYMBOL(void, glFogf, (GLenum pname, GLfloat param))
+_COREGL_SYMBOL(void, glFogfv, (GLenum pname, const GLfloat *params))
+_COREGL_SYMBOL(void, glFrustumf, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar))
+_COREGL_SYMBOL(void, glGetClipPlanef, (GLenum pname, GLfloat eqn[4]))
+_COREGL_SYMBOL(void, glGetLightfv, (GLenum light, GLenum pname, GLfloat *params))
+_COREGL_SYMBOL(void, glGetMaterialfv, (GLenum face, GLenum pname, GLfloat *params))
+_COREGL_SYMBOL(void, glGetTexEnvfv, (GLenum env, GLenum pname, GLfloat *params))
+_COREGL_SYMBOL(void, glLightModelf, (GLenum pname, GLfloat param))
+_COREGL_SYMBOL(void, glLightModelfv, (GLenum pname, const GLfloat *params))
+_COREGL_SYMBOL(void, glLightf, (GLenum light, GLenum pname, GLfloat param))
+_COREGL_SYMBOL(void, glLightfv, (GLenum light, GLenum pname, const GLfloat *params))
+_COREGL_SYMBOL(void, glLoadMatrixf, (const GLfloat *m))
+_COREGL_SYMBOL(void, glMaterialf, (GLenum face, GLenum pname, GLfloat param))
+_COREGL_SYMBOL(void, glMaterialfv, (GLenum face, GLenum pname, const GLfloat *params))
+_COREGL_SYMBOL(void, glMultMatrixf, (const GLfloat *m))
+_COREGL_SYMBOL(void, glMultiTexCoord4f, (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q))
+_COREGL_SYMBOL(void, glNormal3f, (GLfloat nx, GLfloat ny, GLfloat nz))
+_COREGL_SYMBOL(void, glOrthof, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar))
+_COREGL_SYMBOL(void, glPointParameterf, (GLenum pname, GLfloat param))
+_COREGL_SYMBOL(void, glPointParameterfv, (GLenum pname, const GLfloat *params))
+_COREGL_SYMBOL(void, glPointSize, (GLfloat size))
+_COREGL_SYMBOL(void, glRotatef, (GLfloat angle, GLfloat x, GLfloat y, GLfloat z))
+_COREGL_SYMBOL(void, glScalef, (GLfloat x, GLfloat y, GLfloat z))
+_COREGL_SYMBOL(void, glTexEnvf, (GLenum target, GLenum pname, GLfloat param))
+_COREGL_SYMBOL(void, glTexEnvfv, (GLenum target, GLenum pname, const GLfloat *params))
+_COREGL_SYMBOL(void, glTranslatef, (GLfloat x, GLfloat y, GLfloat z))
+_COREGL_SYMBOL(void, glAlphaFuncx, (GLenum func, GLclampx ref))
+_COREGL_SYMBOL(void, glClearColorx, (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha))
+_COREGL_SYMBOL(void, glClearDepthx, (GLclampx depth))
+_COREGL_SYMBOL(void, glClientActiveTexture, (GLenum texture))
+_COREGL_SYMBOL(void, glClipPlanex, (GLenum plane, const GLfixed *equation))
+_COREGL_SYMBOL(void, glColor4ub, (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha))
+_COREGL_SYMBOL(void, glColor4x, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha))
+_COREGL_SYMBOL(void, glColorPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
+_COREGL_SYMBOL(void, glDepthRangex, (GLclampx zNear, GLclampx zFar))
+_COREGL_SYMBOL(void, glDisableClientState, (GLenum array))
+_COREGL_SYMBOL(void, glEnableClientState, (GLenum array))
+_COREGL_SYMBOL(void, glFogx, (GLenum pname, GLfixed param))
+_COREGL_SYMBOL(void, glFogxv, (GLenum pname, const GLfixed *params))
+_COREGL_SYMBOL(void, glFrustumx, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar))
+_COREGL_SYMBOL(void, glGetClipPlanex, (GLenum pname, GLfixed eqn[4]))
+_COREGL_SYMBOL(void, glGetFixedv, (GLenum pname, GLfixed *params))
+_COREGL_SYMBOL(void, glGetLightxv, (GLenum light, GLenum pname, GLfixed *params))
+_COREGL_SYMBOL(void, glGetMaterialxv, (GLenum face, GLenum pname, GLfixed *params))
+_COREGL_SYMBOL(void, glGetTexEnviv, (GLenum env, GLenum pname, GLint *params))
+_COREGL_SYMBOL(void, glGetTexEnvxv, (GLenum env, GLenum pname, GLfixed *params))
+_COREGL_SYMBOL(void, glGetTexParameterxv, (GLenum target, GLenum pname, GLfixed *params))
+_COREGL_SYMBOL(void, glLightModelx, (GLenum pname, GLfixed param))
+_COREGL_SYMBOL(void, glLightModelxv, (GLenum pname, const GLfixed *params))
+_COREGL_SYMBOL(void, glLightx, (GLenum light, GLenum pname, GLfixed param))
+_COREGL_SYMBOL(void, glLightxv, (GLenum light, GLenum pname, const GLfixed *params))
+_COREGL_SYMBOL(void, glLineWidthx, (GLfixed width))
+_COREGL_SYMBOL(void, glLoadIdentity, (void))
+_COREGL_SYMBOL(void, glLoadMatrixx, (const GLfixed *m))
+_COREGL_SYMBOL(void, glLogicOp, (GLenum opcode))
+_COREGL_SYMBOL(void, glMaterialx, (GLenum face, GLenum pname, GLfixed param))
+_COREGL_SYMBOL(void, glMaterialxv, (GLenum face, GLenum pname, const GLfixed *params))
+_COREGL_SYMBOL(void, glMatrixMode, (GLenum mode))
+_COREGL_SYMBOL(void, glMultMatrixx, (const GLfixed *m))
+_COREGL_SYMBOL(void, glMultiTexCoord4x, (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q))
+_COREGL_SYMBOL(void, glNormal3x, (GLfixed nx, GLfixed ny, GLfixed nz))
+_COREGL_SYMBOL(void, glNormalPointer, (GLenum type, GLsizei stride, const GLvoid *pointer))
+_COREGL_SYMBOL(void, glOrthox, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar))
+_COREGL_SYMBOL(void, glPointParameterx, (GLenum pname, GLfixed param))
+_COREGL_SYMBOL(void, glPointParameterxv, (GLenum pname, const GLfixed *params))
+_COREGL_SYMBOL(void, glPointSizex, (GLfixed size))
+_COREGL_SYMBOL(void, glPolygonOffsetx, (GLfixed factor, GLfixed units))
+_COREGL_SYMBOL(void, glPopMatrix, (void))
+_COREGL_SYMBOL(void, glPushMatrix, (void))
+_COREGL_SYMBOL(void, glRotatex, (GLfixed angle, GLfixed x, GLfixed y, GLfixed z) )
+_COREGL_SYMBOL(void, glSampleCoveragex, (GLclampx value, GLboolean invert))
+_COREGL_SYMBOL(void, glScalex, (GLfixed x, GLfixed y, GLfixed z))
+_COREGL_SYMBOL(void, glShadeModel, (GLenum mode))
+_COREGL_SYMBOL(void, glTexCoordPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
+_COREGL_SYMBOL(void, glTexEnvi, (GLenum target, GLenum pname, GLint param))
+_COREGL_SYMBOL(void, glTexEnvx, (GLenum target, GLenum pname, GLfixed param))
+_COREGL_SYMBOL(void, glTexEnviv, (GLenum target, GLenum pname, const GLint *params))
+_COREGL_SYMBOL(void, glTexEnvxv, (GLenum target, GLenum pname, const GLfixed *params))
+_COREGL_SYMBOL(void, glTexParameterx, (GLenum target, GLenum pname, GLfixed param))
+_COREGL_SYMBOL(void, glTexParameterxv, (GLenum target, GLenum pname, const GLfixed *params))
+_COREGL_SYMBOL(void, glTranslatex, (GLfixed x, GLfixed y, GLfixed z))
+_COREGL_SYMBOL(void, glVertexPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
+/* Khronos GLES 1.1 CTS requires glPointSizePointerOES as shared library symbol.*/
+_COREGL_SYMBOL(void, glPointSizePointerOES, (GLenum type, GLsizei stride, const GLvoid *pointer))
+
+//OpenGL ES 1.1 extensions
+_COREGL_EXT_SYMBOL(void, glDrawTexsOES, (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height))
+_COREGL_EXT_SYMBOL(void, glDrawTexiOES, (GLint x, GLint y, GLint z, GLint width, GLint height))
+_COREGL_EXT_SYMBOL(void, glDrawTexxOES, (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height))
+_COREGL_EXT_SYMBOL(void, glDrawTexsvOES, (const GLshort *coords))
+_COREGL_EXT_SYMBOL(void, glDrawTexivOES, (const GLint *coords))
+_COREGL_EXT_SYMBOL(void, glDrawTexxvOES, (const GLfixed *coords))
+_COREGL_EXT_SYMBOL(void, glDrawTexfOES, (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height))
+_COREGL_EXT_SYMBOL(void, glDrawTexfvOES, (const GLfloat *coords))
+_COREGL_EXT_SYMBOL(void, glCurrentPaletteMatrixOES, (GLuint matrixpaletteindex))
+_COREGL_EXT_SYMBOL(void, glLoadPaletteFromModelViewMatrixOES, (void))
+_COREGL_EXT_SYMBOL(void, glMatrixIndexPointerOES, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
+_COREGL_EXT_SYMBOL(void, glWeightPointerOES, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
+_COREGL_EXT_SYMBOL(GLbitfield, glQueryMatrixxOES, (GLfixed mantissa[16], GLint exponent[16]))
+_COREGL_EXT_SYMBOL(void, glTexGenfOES, (GLenum coord, GLenum pname, GLfloat param))
+_COREGL_EXT_SYMBOL(void, glTexGenfvOES, (GLenum coord, GLenum pname, const GLfloat *params))
+_COREGL_EXT_SYMBOL(void, glTexGeniOES, (GLenum coord, GLenum pname, GLint param))
+_COREGL_EXT_SYMBOL(void, glTexGenivOES, (GLenum coord, GLenum pname, const GLint *params))
+_COREGL_EXT_SYMBOL(void, glTexGenxOES, (GLenum coord, GLenum pname, GLfixed param))
+_COREGL_EXT_SYMBOL(void, glTexGenxvOES, (GLenum coord, GLenum pname, const GLfixed *params))
+_COREGL_EXT_SYMBOL(void, glGetTexGenfvOES, (GLenum coord, GLenum pname, GLfloat *params))
+_COREGL_EXT_SYMBOL(void, glGetTexGenivOES, (GLenum coord, GLenum pname, GLint *params))
+_COREGL_EXT_SYMBOL(void, glGetTexGenxvOES, (GLenum coord, GLenum pname, GLfixed *params))
+_COREGL_EXT_SYMBOL(void, glClipPlanefIMG, (GLenum, const GLfloat *))
+_COREGL_EXT_SYMBOL(void, glClipPlanexIMG, (GLenum, const GLfixed *))
+_COREGL_END_API(COREGL_GLAPI_1)
+
+#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
+#endif
+
+#ifdef _COREGL_EXT_SYMBOL_ALIAS_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_ALIAS_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_ALIAS
+#endif
+
+#ifdef _COREGL_FASTPATH_SUPPORTED_EXTENSION_NOT_DEFINED
+#undef _COREGL_FASTPATH_SUPPORTED_EXTENSION_NOT_DEFINED
+#undef _COREGL_FASTPATH_SUPPORTED_EXTENSION
+#endif
+
+#ifdef _COREGL_EXT_SYMBOL_FASTPATH_PASS_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_FASTPATH_PASS_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_FASTPATH_PASS
+#endif
+
+#ifdef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK
+#endif
+
+#ifdef _COREGL_START_API_DEFINED_INSIDE
+#undef _COREGL_START_API
+#undef _COREGL_START_API_DEFINED_INSIDE
+#endif
+
+#ifdef _COREGL_END_API_DEFINED_INSIDE
+#undef _COREGL_END_API
+#undef _COREGL_END_API_DEFINED_INSIDE
+#endif
similarity index 73%
rename from src/headers/sym_gl.h
rename to src/headers/sym_gl2.h
index 7c4ecdf..371f2b4 100644 (file)
@@ -1,8 +1,3 @@
-
-/*
- * gl3.h last updated on $Date: 2013-02-12 14:37:24 -0800 (Tue, 12 Feb 2013) $
- */
-
 // Defult use-case for exporting symbols
 #ifndef _COREGL_SYMBOL
 #define _COREGL_SYMBOL_NOT_DEFINED
 
 #ifndef _COREGL_START_API
 #define _COREGL_START_API(VERSION)
+#define _COREGL_START_API_DEFINED_INSIDE
 #endif
 
 #ifndef _COREGL_END_API
 #define _COREGL_END_API(VERSION)
+#define _COREGL_END_API_DEFINED_INSIDE
 #endif
 
-_COREGL_START_API(COREGL_GLAPI_1)
-_COREGL_SYMBOL(void, glAlphaFunc, (GLenum func, GLclampf ref))
-_COREGL_SYMBOL(void, glClipPlanef, (GLenum plane, const GLfloat *equation))
-_COREGL_SYMBOL(void, glColor4f, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha))
-_COREGL_SYMBOL(void, glFogf, (GLenum pname, GLfloat param))
-_COREGL_SYMBOL(void, glFogfv, (GLenum pname, const GLfloat *params))
-_COREGL_SYMBOL(void, glFrustumf, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar))
-_COREGL_SYMBOL(void, glGetClipPlanef, (GLenum pname, GLfloat eqn[4]))
-_COREGL_SYMBOL(void, glGetLightfv, (GLenum light, GLenum pname, GLfloat *params))
-_COREGL_SYMBOL(void, glGetMaterialfv, (GLenum face, GLenum pname, GLfloat *params))
-_COREGL_SYMBOL(void, glGetTexEnvfv, (GLenum env, GLenum pname, GLfloat *params))
-_COREGL_SYMBOL(void, glLightModelf, (GLenum pname, GLfloat param))
-_COREGL_SYMBOL(void, glLightModelfv, (GLenum pname, const GLfloat *params))
-_COREGL_SYMBOL(void, glLightf, (GLenum light, GLenum pname, GLfloat param))
-_COREGL_SYMBOL(void, glLightfv, (GLenum light, GLenum pname, const GLfloat *params))
-_COREGL_SYMBOL(void, glLoadMatrixf, (const GLfloat *m))
-_COREGL_SYMBOL(void, glMaterialf, (GLenum face, GLenum pname, GLfloat param))
-_COREGL_SYMBOL(void, glMaterialfv, (GLenum face, GLenum pname, const GLfloat *params))
-_COREGL_SYMBOL(void, glMultMatrixf, (const GLfloat *m))
-_COREGL_SYMBOL(void, glMultiTexCoord4f, (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q))
-_COREGL_SYMBOL(void, glNormal3f, (GLfloat nx, GLfloat ny, GLfloat nz))
-_COREGL_SYMBOL(void, glOrthof, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar))
-_COREGL_SYMBOL(void, glPointParameterf, (GLenum pname, GLfloat param))
-_COREGL_SYMBOL(void, glPointParameterfv, (GLenum pname, const GLfloat *params))
-_COREGL_SYMBOL(void, glPointSize, (GLfloat size))
-_COREGL_SYMBOL(void, glRotatef, (GLfloat angle, GLfloat x, GLfloat y, GLfloat z))
-_COREGL_SYMBOL(void, glScalef, (GLfloat x, GLfloat y, GLfloat z))
-_COREGL_SYMBOL(void, glTexEnvf, (GLenum target, GLenum pname, GLfloat param))
-_COREGL_SYMBOL(void, glTexEnvfv, (GLenum target, GLenum pname, const GLfloat *params))
-_COREGL_SYMBOL(void, glTranslatef, (GLfloat x, GLfloat y, GLfloat z))
-_COREGL_SYMBOL(void, glAlphaFuncx, (GLenum func, GLclampx ref))
-_COREGL_SYMBOL(void, glClearColorx, (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha))
-_COREGL_SYMBOL(void, glClearDepthx, (GLclampx depth))
-_COREGL_SYMBOL(void, glClientActiveTexture, (GLenum texture))
-_COREGL_SYMBOL(void, glClipPlanex, (GLenum plane, const GLfixed *equation))
-_COREGL_SYMBOL(void, glColor4ub, (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha))
-_COREGL_SYMBOL(void, glColor4x, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha))
-_COREGL_SYMBOL(void, glColorPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
-_COREGL_SYMBOL(void, glDepthRangex, (GLclampx zNear, GLclampx zFar))
-_COREGL_SYMBOL(void, glDisableClientState, (GLenum array))
-_COREGL_SYMBOL(void, glEnableClientState, (GLenum array))
-_COREGL_SYMBOL(void, glFogx, (GLenum pname, GLfixed param))
-_COREGL_SYMBOL(void, glFogxv, (GLenum pname, const GLfixed *params))
-_COREGL_SYMBOL(void, glFrustumx, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar))
-_COREGL_SYMBOL(void, glGetClipPlanex, (GLenum pname, GLfixed eqn[4]))
-_COREGL_SYMBOL(void, glGetFixedv, (GLenum pname, GLfixed *params))
-_COREGL_SYMBOL(void, glGetLightxv, (GLenum light, GLenum pname, GLfixed *params))
-_COREGL_SYMBOL(void, glGetMaterialxv, (GLenum face, GLenum pname, GLfixed *params))
-_COREGL_SYMBOL(void, glGetTexEnviv, (GLenum env, GLenum pname, GLint *params))
-_COREGL_SYMBOL(void, glGetTexEnvxv, (GLenum env, GLenum pname, GLfixed *params))
-_COREGL_SYMBOL(void, glGetTexParameterxv, (GLenum target, GLenum pname, GLfixed *params))
-_COREGL_SYMBOL(void, glLightModelx, (GLenum pname, GLfixed param))
-_COREGL_SYMBOL(void, glLightModelxv, (GLenum pname, const GLfixed *params))
-_COREGL_SYMBOL(void, glLightx, (GLenum light, GLenum pname, GLfixed param))
-_COREGL_SYMBOL(void, glLightxv, (GLenum light, GLenum pname, const GLfixed *params))
-_COREGL_SYMBOL(void, glLineWidthx, (GLfixed width))
-_COREGL_SYMBOL(void, glLoadIdentity, (void))
-_COREGL_SYMBOL(void, glLoadMatrixx, (const GLfixed *m))
-_COREGL_SYMBOL(void, glLogicOp, (GLenum opcode))
-_COREGL_SYMBOL(void, glMaterialx, (GLenum face, GLenum pname, GLfixed param))
-_COREGL_SYMBOL(void, glMaterialxv, (GLenum face, GLenum pname, const GLfixed *params))
-_COREGL_SYMBOL(void, glMatrixMode, (GLenum mode))
-_COREGL_SYMBOL(void, glMultMatrixx, (const GLfixed *m))
-_COREGL_SYMBOL(void, glMultiTexCoord4x, (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q))
-_COREGL_SYMBOL(void, glNormal3x, (GLfixed nx, GLfixed ny, GLfixed nz))
-_COREGL_SYMBOL(void, glNormalPointer, (GLenum type, GLsizei stride, const GLvoid *pointer))
-_COREGL_SYMBOL(void, glOrthox, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar))
-_COREGL_SYMBOL(void, glPointParameterx, (GLenum pname, GLfixed param))
-_COREGL_SYMBOL(void, glPointParameterxv, (GLenum pname, const GLfixed *params))
-_COREGL_SYMBOL(void, glPointSizex, (GLfixed size))
-_COREGL_SYMBOL(void, glPolygonOffsetx, (GLfixed factor, GLfixed units))
-_COREGL_SYMBOL(void, glPopMatrix, (void))
-_COREGL_SYMBOL(void, glPushMatrix, (void))
-_COREGL_SYMBOL(void, glRotatex, (GLfixed angle, GLfixed x, GLfixed y, GLfixed z) )
-_COREGL_SYMBOL(void, glSampleCoveragex, (GLclampx value, GLboolean invert))
-_COREGL_SYMBOL(void, glScalex, (GLfixed x, GLfixed y, GLfixed z))
-_COREGL_SYMBOL(void, glShadeModel, (GLenum mode))
-_COREGL_SYMBOL(void, glTexCoordPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
-_COREGL_SYMBOL(void, glTexEnvi, (GLenum target, GLenum pname, GLint param))
-_COREGL_SYMBOL(void, glTexEnvx, (GLenum target, GLenum pname, GLfixed param))
-_COREGL_SYMBOL(void, glTexEnviv, (GLenum target, GLenum pname, const GLint *params))
-_COREGL_SYMBOL(void, glTexEnvxv, (GLenum target, GLenum pname, const GLfixed *params))
-_COREGL_SYMBOL(void, glTexParameterx, (GLenum target, GLenum pname, GLfixed param))
-_COREGL_SYMBOL(void, glTexParameterxv, (GLenum target, GLenum pname, const GLfixed *params))
-_COREGL_SYMBOL(void, glTranslatex, (GLfixed x, GLfixed y, GLfixed z))
-_COREGL_SYMBOL(void, glVertexPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
-
-//OpenGL ES 1.1 extensions
-_COREGL_EXT_SYMBOL(void, glPointSizePointerOES, (GLenum type, GLsizei stride, const GLvoid *pointer))
-_COREGL_EXT_SYMBOL(void, glDrawTexsOES, (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height))
-_COREGL_EXT_SYMBOL(void, glDrawTexiOES, (GLint x, GLint y, GLint z, GLint width, GLint height))
-_COREGL_EXT_SYMBOL(void, glDrawTexxOES, (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height))
-_COREGL_EXT_SYMBOL(void, glDrawTexsvOES, (const GLshort *coords))
-_COREGL_EXT_SYMBOL(void, glDrawTexivOES, (const GLint *coords))
-_COREGL_EXT_SYMBOL(void, glDrawTexxvOES, (const GLfixed *coords))
-_COREGL_EXT_SYMBOL(void, glDrawTexfOES, (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height))
-_COREGL_EXT_SYMBOL(void, glDrawTexfvOES, (const GLfloat *coords))
-_COREGL_EXT_SYMBOL(void, glCurrentPaletteMatrixOES, (GLuint matrixpaletteindex))
-_COREGL_EXT_SYMBOL(void, glLoadPaletteFromModelViewMatrixOES, (void))
-_COREGL_EXT_SYMBOL(void, glMatrixIndexPointerOES, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
-_COREGL_EXT_SYMBOL(void, glWeightPointerOES, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))
-_COREGL_EXT_SYMBOL(GLbitfield, glQueryMatrixxOES, (GLfixed mantissa[16], GLint exponent[16]))
-_COREGL_EXT_SYMBOL(void, glTexGenfOES, (GLenum coord, GLenum pname, GLfloat param))
-_COREGL_EXT_SYMBOL(void, glTexGenfvOES, (GLenum coord, GLenum pname, const GLfloat *params))
-_COREGL_EXT_SYMBOL(void, glTexGeniOES, (GLenum coord, GLenum pname, GLint param))
-_COREGL_EXT_SYMBOL(void, glTexGenivOES, (GLenum coord, GLenum pname, const GLint *params))
-_COREGL_EXT_SYMBOL(void, glTexGenxOES, (GLenum coord, GLenum pname, GLfixed param))
-_COREGL_EXT_SYMBOL(void, glTexGenxvOES, (GLenum coord, GLenum pname, const GLfixed *params))
-_COREGL_EXT_SYMBOL(void, glGetTexGenfvOES, (GLenum coord, GLenum pname, GLfloat *params))
-_COREGL_EXT_SYMBOL(void, glGetTexGenivOES, (GLenum coord, GLenum pname, GLint *params))
-_COREGL_EXT_SYMBOL(void, glGetTexGenxvOES, (GLenum coord, GLenum pname, GLfixed *params))
-_COREGL_EXT_SYMBOL(void, glRenderbufferStorageMultisampleAPPLE, (GLenum, GLsizei, GLenum, GLsizei, GLsizei))
-_COREGL_EXT_SYMBOL(void, glResolveMultisampleFramebufferAPPLE, (void))
-_COREGL_EXT_SYMBOL(void, glMultiDrawArraysEXT, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount))
-_COREGL_EXT_SYMBOL(void, glMultiDrawElementsEXT, (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount))
-_COREGL_EXT_SYMBOL(void, glClipPlanefIMG, (GLenum, const GLfloat *))
-_COREGL_EXT_SYMBOL(void, glClipPlanexIMG, (GLenum, const GLfixed *))
-_COREGL_EXT_SYMBOL(void, glRenderbufferStorageMultisampleIMG, (GLenum, GLsizei, GLenum, GLsizei, GLsizei))
-_COREGL_EXT_SYMBOL(void, glFramebufferTexture2DMultisampleIMG, (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei))
-_COREGL_END_API(COREGL_GLAPI_1)
-
 /* OpenGL ES 2.0 */
-_COREGL_SYMBOL(void, glActiveTexture, (GLenum texture))
+_COREGL_START_API(COREGL_GLAPI_2)
 _COREGL_SYMBOL(void, glAttachShader, (GLuint program, GLuint shader))
 _COREGL_SYMBOL(void, glBindAttribLocation, (GLuint program, GLuint index,
                const char *name))
-_COREGL_SYMBOL(void, glBindBuffer, (GLenum target, GLuint buffer))
 _COREGL_SYMBOL(void, glBindFramebuffer, (GLenum target, GLuint framebuffer))
 _COREGL_SYMBOL(void, glBindRenderbuffer, (GLenum target, GLuint renderbuffer))
-_COREGL_SYMBOL(void, glBindTexture, (GLenum target, GLuint texture))
+
 _COREGL_SYMBOL(void, glBlendColor, (GLclampf red, GLclampf green, GLclampf blue,
                                    GLclampf alpha))
 _COREGL_SYMBOL(void, glBlendEquation, ( GLenum mode ))
 _COREGL_SYMBOL(void, glBlendEquationSeparate, (GLenum modeRGB,
                GLenum modeAlpha))
-_COREGL_SYMBOL(void, glBlendFunc, (GLenum sfactor, GLenum dfactor))
 _COREGL_SYMBOL(void, glBlendFuncSeparate, (GLenum srcRGB, GLenum dstRGB,
                GLenum srcAlpha, GLenum dstAlpha))
-_COREGL_SYMBOL(void, glBufferData, (GLenum target, GLsizeiptr size,
-                                   const void *data, GLenum usage))
-_COREGL_SYMBOL(void, glBufferSubData, (GLenum target, GLintptr offset,
-                                      GLsizeiptr size, const void *data))
 _COREGL_SYMBOL(GLenum, glCheckFramebufferStatus, (GLenum target))
-_COREGL_SYMBOL(void, glClear, (GLbitfield mask))
-_COREGL_SYMBOL(void, glClearColor, (GLclampf red, GLclampf green, GLclampf blue,
-                                   GLclampf alpha))
-_COREGL_SYMBOL(void, glClearDepthf, (GLclampf depth))
-_COREGL_SYMBOL(void, glClearStencil, (GLint s))
-_COREGL_SYMBOL(void, glColorMask, (GLboolean red, GLboolean green,
-                                  GLboolean blue, GLboolean alpha))
 _COREGL_SYMBOL(void, glCompileShader, (GLuint shader))
-_COREGL_SYMBOL(void, glCompressedTexImage2D, (GLenum target, GLint level,
-               GLenum internalformat, GLsizei width, GLsizei height, GLint border,
-               GLsizei imageSize, const void *data))
-_COREGL_SYMBOL(void, glCompressedTexSubImage2D, (GLenum target, GLint level,
-               GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format,
-               GLsizei imageSize, const void *data))
-_COREGL_SYMBOL(void, glCopyTexImage2D, (GLenum target, GLint level,
-                                       GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height,
-                                       GLint border))
-_COREGL_SYMBOL(void, glCopyTexSubImage2D, (GLenum target, GLint level,
-               GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height))
 _COREGL_SYMBOL(GLuint, glCreateProgram, (void))
 _COREGL_SYMBOL(GLuint, glCreateShader, (GLenum type))
-_COREGL_SYMBOL(void, glCullFace, (GLenum mode))
-_COREGL_SYMBOL(void, glDeleteBuffers, (GLsizei n, const GLuint *buffers))
 _COREGL_SYMBOL(void, glDeleteFramebuffers, (GLsizei n,
                const GLuint *framebuffers))
 _COREGL_SYMBOL(void, glDeleteProgram, (GLuint program))
 _COREGL_SYMBOL(void, glDeleteRenderbuffers, (GLsizei n,
                const GLuint *renderbuffers))
 _COREGL_SYMBOL(void, glDeleteShader, (GLuint shader))
-_COREGL_SYMBOL(void, glDeleteTextures, (GLsizei n, const GLuint *textures))
-_COREGL_SYMBOL(void, glDepthFunc, (GLenum func))
-_COREGL_SYMBOL(void, glDepthMask, (GLboolean flag))
-_COREGL_SYMBOL(void, glDepthRangef, (GLclampf zNear, GLclampf zFar))
 _COREGL_SYMBOL(void, glDetachShader, (GLuint program, GLuint shader))
-_COREGL_SYMBOL(void, glDisable, (GLenum cap))
 _COREGL_SYMBOL(void, glDisableVertexAttribArray, (GLuint index))
-_COREGL_SYMBOL(void, glDrawArrays, (GLenum mode, GLint first, GLsizei count))
-_COREGL_SYMBOL(void, glDrawElements, (GLenum mode, GLsizei count, GLenum type,
-                                     const void *indices))
-_COREGL_SYMBOL(void, glEnable, (GLenum cap))
 _COREGL_SYMBOL(void, glEnableVertexAttribArray, (GLuint index))
-_COREGL_SYMBOL(void, glFinish, (void))
-_COREGL_SYMBOL(void, glFlush, (void))
 _COREGL_SYMBOL(void, glFramebufferRenderbuffer, (GLenum target,
                GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer))
 _COREGL_SYMBOL(void, glFramebufferTexture2D, (GLenum target, GLenum attachment,
                GLenum textarget, GLuint texture, GLint level))
-_COREGL_SYMBOL(void, glFrontFace, (GLenum mode))
-_COREGL_SYMBOL(void, glGenBuffers, (GLsizei n, GLuint *buffers))
 _COREGL_SYMBOL(void, glGenerateMipmap, (GLenum target))
 _COREGL_SYMBOL(void, glGenFramebuffers, (GLsizei n, GLuint *framebuffers))
 _COREGL_SYMBOL(void, glGenRenderbuffers, (GLsizei n, GLuint *renderbuffers))
-_COREGL_SYMBOL(void, glGenTextures, (GLsizei n, GLuint *textures))
 _COREGL_SYMBOL(void, glGetActiveAttrib, (GLuint program, GLuint index,
                GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name))
 _COREGL_SYMBOL(void, glGetActiveUniform, (GLuint program, GLuint index,
@@ -240,14 +76,8 @@ _COREGL_SYMBOL(void, glGetActiveUniform, (GLuint program, GLuint index,
 _COREGL_SYMBOL(void, glGetAttachedShaders, (GLuint program, GLsizei maxcount,
                GLsizei *count, GLuint *shaders))
 _COREGL_SYMBOL(int, glGetAttribLocation, (GLuint program, const char *name))
-_COREGL_SYMBOL(void, glGetBooleanv, (GLenum pname, GLboolean *params))
-_COREGL_SYMBOL(void, glGetBufferParameteriv, (GLenum target, GLenum pname,
-               GLint *params))
-_COREGL_SYMBOL(GLenum, glGetError, (void))
-_COREGL_SYMBOL(void, glGetFloatv, (GLenum pname, GLfloat *params))
 _COREGL_SYMBOL(void, glGetFramebufferAttachmentParameteriv, (GLenum target,
                GLenum attachment, GLenum pname, GLint *params))
-_COREGL_SYMBOL(void, glGetIntegerv, (GLenum pname, GLint *params))
 _COREGL_SYMBOL(void, glGetProgramiv, (GLuint program, GLenum pname,
                                      GLint *params))
 _COREGL_SYMBOL(void, glGetProgramInfoLog, (GLuint program, GLsizei bufsize,
@@ -262,11 +92,6 @@ _COREGL_SYMBOL(void, glGetShaderPrecisionFormat, (GLenum shadertype,
                GLenum precisiontype, GLint *range, GLint *precision))
 _COREGL_SYMBOL(void, glGetShaderSource, (GLuint shader, GLsizei bufsize,
                GLsizei *length, char *source))
-_COREGL_SYMBOL(const GLubyte *, glGetString, (GLenum name))
-_COREGL_SYMBOL(void, glGetTexParameterfv, (GLenum target, GLenum pname,
-               GLfloat *params))
-_COREGL_SYMBOL(void, glGetTexParameteriv, (GLenum target, GLenum pname,
-               GLint *params))
 _COREGL_SYMBOL(void, glGetUniformfv, (GLuint program, GLint location,
                                      GLfloat *params))
 _COREGL_SYMBOL(void, glGetUniformiv, (GLuint program, GLint location,
@@ -278,52 +103,23 @@ _COREGL_SYMBOL(void, glGetVertexAttribiv, (GLuint index, GLenum pname,
                GLint *params))
 _COREGL_SYMBOL(void, glGetVertexAttribPointerv, (GLuint index, GLenum pname,
                void **pointer))
-_COREGL_SYMBOL(void, glHint, (GLenum target, GLenum mode))
-_COREGL_SYMBOL(GLboolean, glIsBuffer, (GLuint buffer))
-_COREGL_SYMBOL(GLboolean, glIsEnabled, (GLenum cap))
 _COREGL_SYMBOL(GLboolean, glIsFramebuffer, (GLuint framebuffer))
 _COREGL_SYMBOL(GLboolean, glIsProgram, (GLuint program))
 _COREGL_SYMBOL(GLboolean, glIsRenderbuffer, (GLuint renderbuffer))
 _COREGL_SYMBOL(GLboolean, glIsShader, (GLuint shader))
-_COREGL_SYMBOL(GLboolean, glIsTexture, (GLuint texture))
-_COREGL_SYMBOL(void, glLineWidth, (GLfloat width))
 _COREGL_SYMBOL(void, glLinkProgram, (GLuint program))
-_COREGL_SYMBOL(void, glPixelStorei, (GLenum pname, GLint param))
-_COREGL_SYMBOL(void, glPolygonOffset, (GLfloat factor, GLfloat units))
-_COREGL_SYMBOL(void, glReadPixels, (GLint x, GLint y, GLsizei width,
-                                   GLsizei height, GLenum format, GLenum type, void *pixels))
 _COREGL_SYMBOL(void, glReleaseShaderCompiler, (void))
 _COREGL_SYMBOL(void, glRenderbufferStorage, (GLenum target,
                GLenum internalformat, GLsizei width, GLsizei height))
-_COREGL_SYMBOL(void, glSampleCoverage, (GLclampf value, GLboolean invert))
-_COREGL_SYMBOL(void, glScissor, (GLint x, GLint y, GLsizei width,
-                                GLsizei height))
 _COREGL_SYMBOL(void, glShaderBinary, (GLsizei n, const GLuint *shaders,
                                      GLenum binaryformat, const void *binary, GLsizei length))
 _COREGL_SYMBOL(void, glShaderSource, (GLuint shader, GLsizei count,
                                      const char **string, const GLint *length))
-_COREGL_SYMBOL(void, glStencilFunc, (GLenum func, GLint ref, GLuint mask))
 _COREGL_SYMBOL(void, glStencilFuncSeparate, (GLenum face, GLenum func,
                GLint ref, GLuint mask))
-_COREGL_SYMBOL(void, glStencilMask, (GLuint mask))
 _COREGL_SYMBOL(void, glStencilMaskSeparate, (GLenum face, GLuint mask))
-_COREGL_SYMBOL(void, glStencilOp, (GLenum fail, GLenum zfail, GLenum zpass))
 _COREGL_SYMBOL(void, glStencilOpSeparate, (GLenum face, GLenum fail,
                GLenum zfail, GLenum zpass))
-_COREGL_SYMBOL(void, glTexImage2D, (GLenum target, GLint level,
-                                   GLint internalformat, GLsizei width, GLsizei height, GLint border,
-                                   GLenum format, GLenum type, const void *pixels))
-_COREGL_SYMBOL(void, glTexParameterf, (GLenum target, GLenum pname,
-                                      GLfloat param))
-_COREGL_SYMBOL(void, glTexParameterfv, (GLenum target, GLenum pname,
-                                       const GLfloat *params))
-_COREGL_SYMBOL(void, glTexParameteri, (GLenum target, GLenum pname,
-                                      GLint param))
-_COREGL_SYMBOL(void, glTexParameteriv, (GLenum target, GLenum pname,
-                                       const GLint *params))
-_COREGL_SYMBOL(void, glTexSubImage2D, (GLenum target, GLint level,
-                                      GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format,
-                                      GLenum type, const void *pixels))
 _COREGL_SYMBOL(void, glUniform1f, (GLint location, GLfloat x))
 _COREGL_SYMBOL(void, glUniform1fv, (GLint location, GLsizei count,
                                    const GLfloat *v))
@@ -371,10 +167,6 @@ _COREGL_SYMBOL(void, glVertexAttrib4f, (GLuint index, GLfloat x, GLfloat y,
 _COREGL_SYMBOL(void, glVertexAttrib4fv, (GLuint index, const GLfloat *values))
 _COREGL_SYMBOL(void, glVertexAttribPointer, (GLuint index, GLint size,
                GLenum type, GLboolean normalized, GLsizei stride, const void *pointer))
-_COREGL_SYMBOL(void, glViewport, (GLint x, GLint y, GLsizei width,
-                                 GLsizei height))
-_COREGL_SYMBOL(void, glGetPointerv, (GLenum pname, GLvoid **params))
-
 _COREGL_EXT_SYMBOL(void, glBindFramebufferOES, (GLenum target,
                   GLuint framebuffer))
 _COREGL_EXT_SYMBOL(void, glBindRenderbufferOES, (GLenum target,
@@ -531,6 +323,8 @@ _COREGL_EXT_SYMBOL(void, glTexStorage3DMultisampleOES, (GLenum target,
                   GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height,
                   GLsizei depth, GLboolean fixedsamplelocations))
 _COREGL_EXT_SYMBOL(void, glTranslatexOES, (GLfixed x, GLfixed y, GLfixed z))
+_COREGL_END_API(COREGL_GLAPI_2)
+
 /* OpenGL ES 3.0 */
 _COREGL_START_API(COREGL_GLAPI_3)
 _COREGL_SYMBOL(void, glReadBuffer, (GLenum mode))
@@ -948,22 +742,6 @@ _COREGL_EXT_SYMBOL(void, glDeleteQueriesEXT, (GLsizei n, const GLuint *ids))
 _COREGL_EXT_SYMBOL(void, glGenQueriesEXT, (GLsizei n, GLuint *ids))
 _COREGL_EXT_SYMBOL(GLboolean, glIsQueryEXT, (GLuint id))
 _COREGL_EXT_SYMBOL(void, glEndQueryEXT, (GLenum target))
-_COREGL_EXT_SYMBOL(void, glBindVertexArrayOES, (GLuint array))
-_COREGL_EXT_SYMBOL(void, glDeleteVertexArraysOES, (GLsizei n,
-                  GLuint const *arrays))
-_COREGL_EXT_SYMBOL(GLboolean, glIsVertexArrayOES, (GLuint array))
-_COREGL_EXT_SYMBOL(void, glGenVertexArraysOES, (GLsizei n, GLuint *arrays))
-_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_multisampled_render_to_texture",
-                                    2.0, -1)
-_COREGL_EXT_SYMBOL(void, glRenderbufferStorageMultisampleEXT, (GLenum target,
-                  GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
-_COREGL_EXT_SYMBOL(void, glFramebufferTexture2DMultisampleEXT, (GLenum target,
-                  GLenum attachment, GLenum textarget, GLuint texture, GLint level,
-                  GLsizei samples))
-
-_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_discard_framebuffer", 1.0, -1)
-_COREGL_EXT_SYMBOL(void, glDiscardFramebufferEXT, (GLenum target,
-                  GLsizei numAttachments, const GLenum *attachments))
 
 _COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_texture_3D", 2.0, -1)
 _COREGL_EXT_SYMBOL(void, glTexImage3DOES, (GLenum target, GLint level,
@@ -984,12 +762,6 @@ _COREGL_EXT_SYMBOL(void, glCompressedTexSubImage3DOES, (GLenum target,
                   const GLvoid *data))
 
 
-_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_mapbuffer", 1.1, -1)
-_COREGL_EXT_SYMBOL(void, glGetBufferPointervOES, (GLenum target, GLenum pname,
-                  GLvoid **params))
-_COREGL_EXT_SYMBOL(void *, glMapBufferOES, (GLenum target, GLenum access))
-_COREGL_EXT_SYMBOL(GLboolean, glUnmapBufferOES, (GLenum target))
-
 /*
 _COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ANGLE_framebuffer_blit", 1.1, -1)
 _COREGL_EXT_SYMBOL(void, glBlitFramebufferANGLE, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter))
@@ -1089,38 +861,6 @@ _COREGL_EXT_SYMBOL_FASTPATH_PASS(glBeginPerfMonitorAMD)
 _COREGL_EXT_SYMBOL_FASTPATH_PASS(glEndPerfMonitorAMD)
 _COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetPerfMonitorCounterDataAMD)
 
-_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_NV_fence", -1, -1)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glDeleteFencesNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGenFencesNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glIsFenceNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glTestFenceNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetFenceivNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glFinishFenceNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glSetFenceNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glSetFenceNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glTestFenceNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glFinishFenceNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGenFencesNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glDeleteFencesNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glIsFenceNV)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetFenceivNV)
-
-_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_QCOM_driver_control", 1.0, -1)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetDriverControlsQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetDriverControlStringQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glEnableDriverControlQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glDisableDriverControlQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glStartTilingQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glEndTilingQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetDriverControlsQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetDriverControlStringQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glEnableDriverControlQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glDisableDriverControlQCOM)
-
-_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_QCOM_tiled_rendering", 1.0, -1)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glStartTilingQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_PASS(glEndTilingQCOM)
-
 _COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetTexLevelParameterfv)
 _COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetTexLevelParameteriv)
 
@@ -1163,29 +903,9 @@ _COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_vertex_array_object", 1.1, -1)
 
 //_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_QCOM_writeonly_rendering", 1.0, -1)
 
-// QCOM_extended_get
-//_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_QCOM_extended_get", 1.0, -1)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetTexturesQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetBuffersQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetRenderbuffersQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetFramebuffersQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetTexLevelParameterivQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtTexObjectStateOverrideiQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetTexSubImageQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetBufferPointervQCOM)
-
-// QCOM_extended_get2
-//_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_QCOM_extended_get2", 1.0, -1)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetShadersQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetProgramsQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtIsProgramBinaryQCOM)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetProgramBinarySourceQCOM)
-
 // ES3 Invalid usages
 _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glBlitFramebuffer)
 
-
-
 #ifdef _COREGL_EXT_SYMBOL_NOT_DEFINED
 #undef _COREGL_EXT_SYMBOL_NOT_DEFINED
 #undef _COREGL_EXT_SYMBOL
@@ -1216,10 +936,12 @@ _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glBlitFramebuffer)
 #undef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK
 #endif
 
-#ifdef _COREGL_START_API
+#ifdef _COREGL_START_API_DEFINED_INSIDE
 #undef _COREGL_START_API
+#undef _COREGL_START_API_DEFINED_INSIDE
 #endif
 
-#ifdef _COREGL_END_API
+#ifdef _COREGL_END_API_DEFINED_INSIDE
 #undef _COREGL_END_API
+#undef _COREGL_END_API_DEFINED_INSIDE
 #endif
diff --git a/src/headers/sym_gl_common.h b/src/headers/sym_gl_common.h
new file mode 100644 (file)
index 0000000..7d86d56
--- /dev/null
@@ -0,0 +1,227 @@
+// Defult use-case for exporting symbols
+#ifndef _COREGL_SYMBOL
+#define _COREGL_SYMBOL_NOT_DEFINED
+#define _COREGL_SYMBOL(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(RET_TYPE, FUNC_NAME, PARAM_LIST) _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
+#endif
+#ifndef _COREGL_EXT_SYMBOL_ALIAS
+#define _COREGL_EXT_SYMBOL_ALIAS_NOT_DEFINED
+#define _COREGL_EXT_SYMBOL_ALIAS(FUNC_NAME, ALIAS_NAME)
+#endif
+#ifndef _COREGL_FASTPATH_SUPPORTED_EXTENSION
+#define _COREGL_FASTPATH_SUPPORTED_EXTENSION_NOT_DEFINED
+#define _COREGL_FASTPATH_SUPPORTED_EXTENSION(NAME, MINVER, MAXVER)
+#endif
+#ifndef _COREGL_EXT_SYMBOL_FASTPATH_PASS
+#define _COREGL_EXT_SYMBOL_FASTPATH_PASS_NOT_DEFINED
+#define _COREGL_EXT_SYMBOL_FASTPATH_PASS(FUNC_NAME)
+#endif
+#ifndef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK
+#define _COREGL_EXT_SYMBOL_FASTPATH_BLOCK_NOT_DEFINED
+#define _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(FUNC_NAME)
+#endif
+
+#ifndef _COREGL_START_API
+#define _COREGL_START_API(VERSION)
+#define _COREGL_START_API_DEFINED_INSIDE
+#endif
+
+#ifndef _COREGL_END_API
+#define _COREGL_END_API(VERSION)
+#define _COREGL_END_API_DEFINED_INSIDE
+#endif
+
+_COREGL_START_API(COREGL_GLAPI_1_2_COMMON)
+_COREGL_SYMBOL(void, glActiveTexture, (GLenum texture))
+_COREGL_SYMBOL(void, glClearColor, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha))
+_COREGL_SYMBOL(void, glClearDepthf, (GLclampf depth))
+_COREGL_SYMBOL(void, glDepthRangef, (GLclampf zNear, GLclampf zFar))
+_COREGL_SYMBOL(void, glGetFloatv, (GLenum pname, GLfloat *params))
+_COREGL_SYMBOL(void, glGetTexParameterfv, (GLenum target, GLenum pname,        GLfloat *params))
+_COREGL_SYMBOL(void, glLineWidth, (GLfloat width))
+_COREGL_SYMBOL(void, glPolygonOffset, (GLfloat factor, GLfloat units))
+_COREGL_SYMBOL(void, glTexParameterf, (GLenum target, GLenum pname, GLfloat param))
+_COREGL_SYMBOL(void, glTexParameterfv, (GLenum target, GLenum pname, const GLfloat *params))
+_COREGL_SYMBOL(void, glBindBuffer, (GLenum target, GLuint buffer))
+_COREGL_SYMBOL(void, glBindTexture, (GLenum target, GLuint texture))
+_COREGL_SYMBOL(void, glBlendFunc, (GLenum sfactor, GLenum dfactor))
+_COREGL_SYMBOL(void, glBufferData, (GLenum target, GLsizeiptr size,
+                                                       const void *data, GLenum usage))
+_COREGL_SYMBOL(void, glBufferSubData, (GLenum target, GLintptr offset,
+                                                       GLsizeiptr size, const void *data))
+_COREGL_SYMBOL(void, glClear, (GLbitfield mask))
+_COREGL_SYMBOL(void, glClearStencil, (GLint s))
+_COREGL_SYMBOL(void, glColorMask, (GLboolean red, GLboolean green,
+                                                       GLboolean blue, GLboolean alpha))
+_COREGL_SYMBOL(void, glCompressedTexImage2D, (GLenum target, GLint level,
+               GLenum internalformat, GLsizei width, GLsizei height, GLint border,
+               GLsizei imageSize, const void *data))
+_COREGL_SYMBOL(void, glCompressedTexSubImage2D, (GLenum target, GLint level,
+               GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format,
+               GLsizei imageSize, const void *data))
+_COREGL_SYMBOL(void, glCopyTexImage2D, (GLenum target, GLint level,
+               GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border))
+_COREGL_SYMBOL(void, glCopyTexSubImage2D, (GLenum target, GLint level,
+               GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height))
+_COREGL_SYMBOL(void, glCullFace, (GLenum mode))
+_COREGL_SYMBOL(void, glDeleteBuffers, (GLsizei n, const GLuint *buffers))
+_COREGL_SYMBOL(void, glDeleteTextures, (GLsizei n, const GLuint *textures))
+_COREGL_SYMBOL(void, glDepthFunc, (GLenum func))
+_COREGL_SYMBOL(void, glDepthMask, (GLboolean flag))
+_COREGL_SYMBOL(void, glDisable, (GLenum cap))
+_COREGL_SYMBOL(void, glDrawArrays, (GLenum mode, GLint first, GLsizei count))
+_COREGL_SYMBOL(void, glDrawElements, (GLenum mode, GLsizei count, GLenum type,
+                                       const void *indices))
+_COREGL_SYMBOL(void, glEnable, (GLenum cap))
+_COREGL_SYMBOL(void, glFinish, (void))
+_COREGL_SYMBOL(void, glFlush, (void))
+_COREGL_SYMBOL(void, glFrontFace, (GLenum mode))
+_COREGL_SYMBOL(void, glGetBooleanv, (GLenum pname, GLboolean *params))
+_COREGL_SYMBOL(void, glGetBufferParameteriv, (GLenum target, GLenum pname,
+                                       GLint *params))
+_COREGL_SYMBOL(void, glGenBuffers, (GLsizei n, GLuint *buffers))
+_COREGL_SYMBOL(void, glGenTextures, (GLsizei n, GLuint *textures))
+_COREGL_SYMBOL(GLenum, glGetError, (void))
+_COREGL_SYMBOL(void, glGetIntegerv, (GLenum pname, GLint *params))
+_COREGL_SYMBOL(void, glGetPointerv, (GLenum pname, GLvoid **params))
+_COREGL_SYMBOL(const GLubyte *, glGetString, (GLenum name))
+_COREGL_SYMBOL(void, glGetTexParameteriv, (GLenum target, GLenum pname,
+                                       GLint *params))
+_COREGL_SYMBOL(void, glHint, (GLenum target, GLenum mode))
+_COREGL_SYMBOL(GLboolean, glIsBuffer, (GLuint buffer))
+_COREGL_SYMBOL(GLboolean, glIsEnabled, (GLenum cap))
+_COREGL_SYMBOL(GLboolean, glIsTexture, (GLuint texture))
+_COREGL_SYMBOL(void, glPixelStorei, (GLenum pname, GLint param))
+_COREGL_SYMBOL(void, glReadPixels, (GLint x, GLint y, GLsizei width,
+                                       GLsizei height, GLenum format, GLenum type, void *pixels))
+_COREGL_SYMBOL(void, glSampleCoverage, (GLclampf value, GLboolean invert))
+_COREGL_SYMBOL(void, glScissor, (GLint x, GLint y, GLsizei width,
+                                        GLsizei height))
+_COREGL_SYMBOL(void, glStencilFunc, (GLenum func, GLint ref, GLuint mask))
+_COREGL_SYMBOL(void, glStencilMask, (GLuint mask))
+_COREGL_SYMBOL(void, glStencilOp, (GLenum fail, GLenum zfail, GLenum zpass))
+_COREGL_SYMBOL(void, glTexImage2D, (GLenum target, GLint level,
+                                       GLint internalformat, GLsizei width, GLsizei height, GLint border,
+                                       GLenum format, GLenum type, const void *pixels))
+_COREGL_SYMBOL(void, glTexParameteri, (GLenum target, GLenum pname,
+                                       GLint param))
+_COREGL_SYMBOL(void, glTexParameteriv, (GLenum target, GLenum pname,
+                                       const GLint *params))
+_COREGL_SYMBOL(void, glTexSubImage2D, (GLenum target, GLint level,
+                                       GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format,
+                                       GLenum type, const void *pixels))
+_COREGL_SYMBOL(void, glViewport, (GLint x, GLint y, GLsizei width, GLsizei height))
+
+/* extensions */
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_mapbuffer", 1.1, -1)
+_COREGL_EXT_SYMBOL(void, glGetBufferPointervOES, (GLenum target, GLenum pname,
+                  GLvoid **params))
+_COREGL_EXT_SYMBOL(void *, glMapBufferOES, (GLenum target, GLenum access))
+_COREGL_EXT_SYMBOL(GLboolean, glUnmapBufferOES, (GLenum target))
+
+_COREGL_EXT_SYMBOL(void, glBindVertexArrayOES, (GLuint array))
+_COREGL_EXT_SYMBOL(void, glDeleteVertexArraysOES, (GLsizei n,
+                  GLuint const *arrays))
+_COREGL_EXT_SYMBOL(void, glGenVertexArraysOES, (GLsizei n, GLuint *arrays))
+_COREGL_EXT_SYMBOL(GLboolean, glIsVertexArrayOES, (GLuint array))
+_COREGL_EXT_SYMBOL(void, glRenderbufferStorageMultisampleAPPLE, (GLenum, GLsizei, GLenum, GLsizei, GLsizei))
+_COREGL_EXT_SYMBOL(void, glResolveMultisampleFramebufferAPPLE, (void))
+
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_discard_framebuffer", 1.0, -1)
+_COREGL_EXT_SYMBOL(void, glDiscardFramebufferEXT, (GLenum target,
+                       GLsizei numAttachments, const GLenum *attachments))
+_COREGL_EXT_SYMBOL(void, glMultiDrawArraysEXT, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount))
+_COREGL_EXT_SYMBOL(void, glMultiDrawElementsEXT, (GLenum mode, const GLsizei *count, GLenum type,
+                       const void *const*indices, GLsizei primcount))
+
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_multisampled_render_to_texture",
+                                    2.0, -1)
+_COREGL_EXT_SYMBOL(void, glRenderbufferStorageMultisampleEXT, (GLenum target,
+                  GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
+_COREGL_EXT_SYMBOL(void, glFramebufferTexture2DMultisampleEXT, (GLenum target,
+                  GLenum attachment, GLenum textarget, GLuint texture, GLint level,
+                  GLsizei samples))
+_COREGL_EXT_SYMBOL(void, glRenderbufferStorageMultisampleIMG, (GLenum, GLsizei, GLenum, GLsizei, GLsizei))
+_COREGL_EXT_SYMBOL(void, glFramebufferTexture2DMultisampleIMG, (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei))
+
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_NV_fence", -1, -1)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glDeleteFencesNV)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGenFencesNV)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glIsFenceNV)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glTestFenceNV)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetFenceivNV)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glFinishFenceNV)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glSetFenceNV)
+
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_QCOM_driver_control", 1.0, -1)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetDriverControlsQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetDriverControlStringQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glEnableDriverControlQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glDisableDriverControlQCOM)
+
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_QCOM_tiled_rendering", 1.0, -1)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glStartTilingQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_PASS(glEndTilingQCOM)
+
+// QCOM_extended_get
+//_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_QCOM_extended_get", 1.0, -1)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetTexturesQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetBuffersQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetRenderbuffersQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetFramebuffersQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetTexLevelParameterivQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtTexObjectStateOverrideiQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetTexSubImageQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetBufferPointervQCOM)
+
+// QCOM_extended_get2
+//_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_QCOM_extended_get2", 1.0, -1)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetShadersQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetProgramsQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtIsProgramBinaryQCOM)
+_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetProgramBinarySourceQCOM)
+_COREGL_END_API(COREGL_GLAPI_1_2_COMMON)
+
+
+#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
+#endif
+
+#ifdef _COREGL_EXT_SYMBOL_ALIAS_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_ALIAS_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_ALIAS
+#endif
+
+#ifdef _COREGL_FASTPATH_SUPPORTED_EXTENSION_NOT_DEFINED
+#undef _COREGL_FASTPATH_SUPPORTED_EXTENSION_NOT_DEFINED
+#undef _COREGL_FASTPATH_SUPPORTED_EXTENSION
+#endif
+
+#ifdef _COREGL_EXT_SYMBOL_FASTPATH_PASS_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_FASTPATH_PASS_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_FASTPATH_PASS
+#endif
+
+#ifdef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK_NOT_DEFINED
+#undef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK
+#endif
+
+#ifdef _COREGL_START_API_DEFINED_INSIDE
+#undef _COREGL_START_API
+#undef _COREGL_START_API_DEFINED_INSIDE
+#endif
+
+#ifdef _COREGL_END_API_DEFINED_INSIDE
+#undef _COREGL_END_API
+#undef _COREGL_END_API_DEFINED_INSIDE
+#endif
index 2da19f4..f10c086 100644 (file)
@@ -65,7 +65,9 @@ appopt_apply_overrides_gl(int enable)
 {
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     COREGL_INIT_ORIGINAL(_orig_appopt_, FUNC_NAME);
 #define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
-# include "../../headers/sym_gl.h"
+# include "../../headers/sym_gl1.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
 #undef _COREGL_EXT_SYMBOL
 #undef _COREGL_SYMBOL
 }
index 87bb58d..91a733a 100644 (file)
@@ -40,11 +40,15 @@ reset_modules_override()
        init_export();
 
        // Step 2 : User Define Modules : Sequence is important! (Last module's API is called first)
-       fastpath_apply_overrides();
+       if(driver_gl_version > COREGL_GLAPI_1) {
+               fastpath_apply_overrides();
+       }
        appopt_apply_overrides();
 
        // Step 3 : Common Wrapping Modules
-       tracepath_apply_overrides();
+       if(driver_gl_version > COREGL_GLAPI_1) {
+               tracepath_apply_overrides();
+       }
 }
 
 void
index 7188914..585642d 100644 (file)
@@ -10,7 +10,9 @@
 
 
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     RET_TYPE (*_orig_fastpath_##FUNC_NAME) PARAM_LIST = NULL;
-#include "../../headers/sym.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
+# include "../../headers/sym_egl.h"
 #undef _COREGL_SYMBOL
 
 Fastpath_Opt_Flag   fp_opt = FP_UNKNOWN_PATH;
@@ -280,18 +282,13 @@ fastpath_apply_overrides_gl(int enable)
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     \
    if(api_gl_version <= driver_gl_version) COREGL_INIT_ORIGINAL(_orig_fastpath_, FUNC_NAME);
 
-# include "../../headers/sym_gl.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
 #undef _COREGL_SYMBOL
 #undef _COREGL_START_API
 #undef _COREGL_END_API
 
        if (debug_nofp != 1) {
-               if (driver_gl_version >= COREGL_GLAPI_1) {
-                       COREGL_OVERRIDE(fastpath_, glClientActiveTexture);
-                       COREGL_OVERRIDE(fastpath_, glSampleCoveragex);
-                       COREGL_OVERRIDE(fastpath_, glVertexPointer);
-               }
-
                COREGL_OVERRIDE(fastpath_, glGetError);
                COREGL_OVERRIDE(fastpath_, glGetString);
 
index be2b4f4..16fddb3 100644 (file)
 #include "../../coregl_export.h"
 
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     extern RET_TYPE (*_orig_fastpath_##FUNC_NAME) PARAM_LIST;
-# include "../../headers/sym.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
+# include "../../headers/sym_egl.h"
 #undef _COREGL_SYMBOL
 
 // Symbol definition for fastpath
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     extern RET_TYPE (fastpath_##FUNC_NAME) PARAM_LIST;
-# include "../../headers/sym.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
+# include "../../headers/sym_egl.h"
 #undef _COREGL_SYMBOL
 
 #define COREGL_FASTPATH_TRACE_ALL
index 945f08e..7b9cb4e 100644 (file)
@@ -1412,7 +1412,9 @@ fastpath_eglGetProcAddress(const char *procname)
        }
 
 #include "../../headers/sym_egl.h"
-#include "../../headers/sym_gl.h"
+#include "../../headers/sym_gl1.h"
+#include "../../headers/sym_gl2.h"
+#include "../../headers/sym_gl_common.h"
 #undef _COREGL_SYMBOL
 #undef _COREGL_EXT_SYMBOL_ALIAS
 
@@ -1431,7 +1433,9 @@ fastpath_eglGetProcAddress(const char *procname)
        }
 
 #include "../../headers/sym_egl.h"
-#include "../../headers/sym_gl.h"
+#include "../../headers/sym_gl1.h"
+#include "../../headers/sym_gl2.h"
+#include "../../headers/sym_gl_common.h"
 #undef _COREGL_EXT_SYMBOL_FASTPATH_PASS
 #undef _COREGL_EXT_SYMBOL_FASTPATH_BLOCK
 
index 65ba948..772ecd0 100644 (file)
@@ -313,7 +313,8 @@ _valid_extension_string()
                                                        gl_extension_count++; \
                                                }
 
-# include "../../headers/sym_gl.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
 
 #undef _COREGL_FASTPATH_SUPPORTED_EXTENSION
 #undef _COREGL_SYMBOL
@@ -328,64 +329,6 @@ _valid_extension_string()
        AST(mutex_unlock(&extension_check_mutex) == 1);
 }
 
-void
-fastpath_glClientActiveTexture (GLenum texture)
-{
-       DEFINE_FASTPAH_GL_FUNC();
-       _COREGL_FASTPATH_FUNC_BEGIN();
-       INIT_FASTPATH_GL_FUNC();
-
-       CURR_STATE_COMPARE(gl_client_active_texture, texture) {
-               IF_GL_SUCCESS(_orig_fastpath_glClientActiveTexture(texture)) {
-                       current_ctx->_tex_flag1 |= _TEX_FLAG1_BIT_gl_client_active_texture;
-                       current_ctx->gl_client_active_texture[0] = texture;
-               }
-       }
-       goto finish;
-
-finish:
-       _COREGL_FASTPATH_FUNC_END();
-}
-
-void
-fastpath_glSampleCoveragex(GLclampx value, GLboolean invert)
-{
-       DEFINE_FASTPAH_GL_FUNC();
-       _COREGL_FASTPATH_FUNC_BEGIN();
-       INIT_FASTPATH_GL_FUNC();
-
-       if ((current_ctx->gl_sample_coverage_value[0] != value) ||
-           (current_ctx->gl_sample_coverage_invert[0] != invert)) {
-               IF_GL_SUCCESS(_orig_fastpath_glSampleCoveragex(value, invert)) {
-                       current_ctx->_misc_flag1 |=
-                               _MISC_FLAG1_BIT_gl_sample_coverage_value |
-                               _MISC_FLAG1_BIT_gl_sample_coverage_invert;
-
-                       current_ctx->gl_sample_coverage_value[0] = value;
-                       current_ctx->gl_sample_coverage_invert[0] = invert;
-               }
-       }
-       goto finish;
-
-finish:
-       _COREGL_FASTPATH_FUNC_END();
-}
-
-void
-fastpath_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       DEFINE_FASTPAH_GL_FUNC();
-       _COREGL_FASTPATH_FUNC_BEGIN();
-       INIT_FASTPATH_GL_FUNC();
-
-       _orig_fastpath_glVertexPointer(size, type, stride, pointer);
-
-       goto finish;
-
-finish:
-       _COREGL_FASTPATH_FUNC_END();
-}
-
 GLenum
 fastpath_glGetError(void)
 {
index bad55a4..1304def 100644 (file)
@@ -4,10 +4,12 @@
 
 #ifndef _COREGL_START_API
 #define _COREGL_START_API(version)
+#define _COREGL_START_API_DEFINED_INSIDE
 #endif
 
 #ifndef _COREGL_END_API
 #define _COREGL_END_API(version)
+#define _COREGL_END_API_DEFINED_INSIDE
 #endif
 
 
@@ -376,3 +378,12 @@ GLUE_STATE(GLboolean, gl_transform_feedback_paused, 1, 1, SET_1(0),
           _sym_glGetBooleanv(GL_TRANSFORM_FEEDBACK_PAUSED, (GLboolean *)value);)
 _COREGL_END_API(COREGL_GLAPI_3)
 
+#ifdef _COREGL_START_API_DEFINED_INSIDE
+#undef _COREGL_START_API
+#undef _COREGL_START_API_DEFINED_INSIDE
+#endif
+
+#ifdef _COREGL_END_API_DEFINED_INSIDE
+#undef _COREGL_END_API
+#undef _COREGL_END_API_DEFINED_INSIDE
+#endif
index bb7b3fe..68c13b9 100644 (file)
@@ -13,7 +13,9 @@ static int         api_gl_version;
 
 
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     RET_TYPE (*_orig_tracepath_##FUNC_NAME) PARAM_LIST = NULL;
-#include "../../headers/sym.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
+# include "../../headers/sym_egl.h"
 #undef _COREGL_SYMBOL
 
 #define TIMEVAL_INIT            { 0, 0 }
@@ -426,12 +428,14 @@ tracepath_apply_overrides_gl(int enable)
 #define _COREGL_END_API(version) api_gl_version = COREGL_GLAPI_2;
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     \
        if(api_gl_version <= driver_gl_version) COREGL_INIT_ORIGINAL(_orig_tracepath_, FUNC_NAME);
-# include "../../headers/sym_gl.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
 #undef _COREGL_SYMBOL
 
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) \
        if(api_gl_version <= driver_gl_version) COREGL_OVERRIDE(tracepath_, FUNC_NAME);
-# include "../../headers/sym_gl.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
 #undef _COREGL_SYMBOL
 #undef _COREGL_START_API
 #undef _COREGL_END_API
index 78b8e5a..1293ce8 100644 (file)
 #include "../../coregl_export.h"
 
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     extern RET_TYPE (*_orig_tracepath_##FUNC_NAME) PARAM_LIST;
-# include "../../headers/sym.h"
+# include "../../headers/sym_egl.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
 #undef _COREGL_SYMBOL
 
 // Symbol definition for tracepath
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     extern RET_TYPE (tracepath_##FUNC_NAME) PARAM_LIST;
-# include "../../headers/sym.h"
+# include "../../headers/sym_egl.h"
+# include "../../headers/sym_gl2.h"
+# include "../../headers/sym_gl_common.h"
 #undef _COREGL_SYMBOL
 
 #define MAX_TRACE_NAME_LENGTH  256
index 886bf67..f7bd087 100644 (file)
@@ -925,7 +925,8 @@ tracepath_eglGetProcAddress(const char *procname)
    }
 
 #include "../../headers/sym_egl.h"
-#include "../../headers/sym_gl.h"
+#include "../../headers/sym_gl1.h"
+#include "../../headers/sym_gl2.h"
 #undef _COREGL_SYMBOL
 #undef _COREGL_EXT_SYMBOL_ALIAS
 
index 13634f7..271aee1 100644 (file)
@@ -231,1308 +231,7 @@ tracepath_fbdump_update(GLint set)
 }
 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
 
-
-/* Beginning of OpenGL ES 1.1*/
-void
-tracepath_glAlphaFunc(GLenum func, GLclampf ref)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glAlphaFunc(func, ref);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glClipPlanef(GLenum plane, const GLfloat *equation)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glClipPlanef(plane, equation);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glColor4f(red, green, blue, alpha);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glFogf(GLenum pname, GLfloat param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glFogf(pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glFogfv(GLenum pname, const GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glFogfv(pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glFrustumf(left, right, bottom, top, zNear, zFar);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetClipPlanef(GLenum pname, GLfloat eqn[4])
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetClipPlanef(pname, eqn);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetLightfv(GLenum light, GLenum pname, GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetLightfv(light, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetMaterialfv(face, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetTexEnvfv(env, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLightModelf(GLenum pname, GLfloat param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLightModelf(pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLightModelfv(GLenum pname, const GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLightModelfv(pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLightf(GLenum light, GLenum pname, GLfloat param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLightf(light, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLightfv(GLenum light, GLenum pname, const GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLightfv(light, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLoadMatrixf(const GLfloat *m)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLoadMatrixf(m);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glMaterialf(GLenum face, GLenum pname, GLfloat param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glMaterialf(face, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glMaterialfv(GLenum face, GLenum pname, const GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glMaterialfv(face, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glMultMatrixf(const GLfloat *m)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glMultMatrixf(m);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glMultiTexCoord4f(target, s, t, r, q);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glNormal3f(nx, ny, nz);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glOrthof(left, right, bottom, top, zNear, zFar);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glPointParameterf(GLenum pname, GLfloat param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glPointParameterf(pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glPointParameterfv(GLenum pname, const GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glPointParameterfv(pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glPointSize(GLfloat size)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glPointSize(size);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glRotatef(angle, x, y, z);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glScalef(GLfloat x, GLfloat y, GLfloat z)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glScalef(x, y, z);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexEnvf(GLenum target, GLenum pname, GLfloat param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexEnvf(target, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexEnvfv(target, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTranslatef(GLfloat x, GLfloat y, GLfloat z)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTranslatef(x, y, z);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glAlphaFuncx(GLenum func, GLclampx ref)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glAlphaFuncx(func, ref);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glClearColorx(red, green, blue, alpha);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glClearDepthx(GLclampx depth)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glClearDepthx(depth);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glClientActiveTexture(GLenum texture)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glClientActiveTexture(texture);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glClipPlanex(GLenum plane, const GLfixed *equation)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glClipPlanex(plane, equation);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glColor4ub(red, green, blue, alpha);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glColor4x(red, green, blue, alpha);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glColorPointer(size, type, stride, pointer);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glDepthRangex(GLclampx zNear, GLclampx zFar)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glDepthRangex(zNear, zFar);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glDisableClientState(GLenum array)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glDisableClientState(array);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glEnableClientState(GLenum array)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glEnableClientState(array);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glFogx(GLenum pname, GLfixed param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glFogx(pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glFogxv(GLenum pname, const GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glFogxv(pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glFrustumx(left, right, bottom, top, zNear, zFar);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetClipPlanex(GLenum pname, GLfixed eqn[4])
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetClipPlanex(pname, eqn);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetFixedv(GLenum pname, GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetFixedv(pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetLightxv(GLenum light, GLenum pname, GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetLightxv(light, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetMaterialxv(face, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetTexEnviv(GLenum env, GLenum pname, GLint *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetTexEnviv(env, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetTexEnvxv(env, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetTexParameterxv(target, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLightModelx(GLenum pname, GLfixed param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLightModelx(pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLightModelxv(GLenum pname, const GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLightModelxv(pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLightx(GLenum light, GLenum pname, GLfixed param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLightx(light, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLightxv(GLenum light, GLenum pname, const GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLightxv(light, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLineWidthx(GLfixed width)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLineWidthx(width);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLoadIdentity(void)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLoadIdentity();
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLoadMatrixx(const GLfixed *m)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLoadMatrixx(m);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLogicOp(GLenum opcode)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLogicOp(opcode);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glMaterialx(GLenum face, GLenum pname, GLfixed param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glMaterialx(face, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glMaterialxv(GLenum face, GLenum pname, const GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glMaterialxv(face, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glMatrixMode(GLenum mode)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glMatrixMode(mode);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glMultMatrixx(const GLfixed *m)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glMultMatrixx(m);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glMultiTexCoord4x(target, s, t, r, q);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glNormal3x(nx, ny, nz);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glNormalPointer(type, stride, pointer);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glOrthox(left, right, bottom, top, zNear, zFar);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glPointParameterx(GLenum pname, GLfixed param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glPointParameterx(pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glPointParameterxv(GLenum pname, const GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glPointParameterxv(pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glPointSizex(GLfixed size)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glPointSizex(size);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glPolygonOffsetx(GLfixed factor, GLfixed units)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glPolygonOffsetx(factor, units);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glPopMatrix(void)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glPopMatrix();
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glPushMatrix(void)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glPushMatrix();
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glRotatex (angle, x, y, z);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glSampleCoveragex(GLclampx value, GLboolean invert)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glSampleCoveragex(value, invert);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glScalex(GLfixed x, GLfixed y, GLfixed z)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glScalex (x, y, z);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glShadeModel(GLenum mode)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glShadeModel(mode);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexCoordPointer(size, type, stride, pointer);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexEnvi(GLenum target, GLenum pname, GLint param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexEnvi(target, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexEnvx(GLenum target, GLenum pname, GLfixed param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexEnvx(target, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexEnviv(GLenum target, GLenum pname, const GLint *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexEnviv(target, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexEnvxv(GLenum target, GLenum pname, const GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexEnvxv(target, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexParameterx(GLenum target, GLenum pname, GLfixed param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexParameterx(target, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexParameterxv(GLenum target, GLenum pname, const GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexParameterxv(target, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTranslatex(GLfixed x, GLfixed y, GLfixed z)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTranslatex(x, y, z);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glVertexPointer(size, type, stride, pointer);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-//OpenGL ES 1.1 extensions
-void
-tracepath_glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glPointSizePointerOES(type, stride, pointer);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glDrawTexsOES(x, y, z, width, height);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glDrawTexiOES(x, y, z, width, height);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glDrawTexxOES(x, y, z, width, height);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glDrawTexsvOES(const GLshort *coords)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glDrawTexsvOES(coords);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glDrawTexivOES(const GLint *coords)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glDrawTexivOES(coords);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glDrawTexxvOES(const GLfixed *coords)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glDrawTexxvOES(coords);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glDrawTexfOES(x, y, z, width, height);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glDrawTexfvOES(const GLfloat *coords)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glDrawTexfvOES(coords);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glCurrentPaletteMatrixOES(GLuint matrixpaletteindex)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glCurrentPaletteMatrixOES(matrixpaletteindex);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glLoadPaletteFromModelViewMatrixOES(void)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glLoadPaletteFromModelViewMatrixOES();
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glMatrixIndexPointerOES(size, type, stride, pointer);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glWeightPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glWeightPointerOES(size, type, stride, pointer);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-GLbitfield
-tracepath_glQueryMatrixxOES(GLfixed mantissa[16], GLint exponent[16])
-{
-       GLuint ret = _COREGL_INT_INIT_VALUE;
-
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       ret = _orig_tracepath_glQueryMatrixxOES(mantissa, exponent);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-       return ret;
-}
-
-void
-tracepath_glTexGenfOES(GLenum coord, GLenum pname, GLfloat param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexGenfOES(coord, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexGenfvOES(GLenum coord, GLenum pname, const GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexGenfvOES(coord, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexGeniOES(GLenum coord, GLenum pname, GLint param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexGeniOES(coord, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexGenivOES(GLenum coord, GLenum pname, const GLint *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexGenivOES(coord, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexGenxOES(GLenum coord, GLenum pname, GLfixed param)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexGenxOES(coord, pname, param);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glTexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glTexGenxvOES(coord, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetTexGenfvOES(coord, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetTexGenivOES(GLenum coord, GLenum pname, GLint *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetTexGenivOES(coord, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glGetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glGetTexGenxvOES(coord, pname, params);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
+/* common extensions in GLES1.1 and GLES2.0 */
 void
 tracepath_glRenderbufferStorageMultisampleAPPLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
 {
@@ -1582,30 +281,6 @@ finish:
 }
 
 void
-tracepath_glClipPlanefIMG(GLenum plane, const GLfloat *equation)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glClipPlanefIMG(plane, equation);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
-tracepath_glClipPlanexIMG(GLenum plane, const GLfixed *equation)
-{
-       _COREGL_TRACEPATH_FUNC_BEGIN();
-       _orig_tracepath_glClipPlanexIMG(plane, equation);
-
-       goto finish;
-
-finish:
-       _COREGL_TRACEPATH_FUNC_END();
-}
-
-void
 tracepath_glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
 {
        _COREGL_TRACEPATH_FUNC_BEGIN();
@@ -1628,10 +303,7 @@ tracepath_glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment,
 finish:
        _COREGL_TRACEPATH_FUNC_END();
 }
-
-/* Ending of OpenGL ES 1.1*/
-
-/* OpenGL ES 2.0 */
+/* end of common extensions in GLES1.1 and GLES2.0 */
 
 void
 tracepath_glActiveTexture(GLenum texture)
diff --git a/src/wraps/coregl_gl1.c b/src/wraps/coregl_gl1.c
new file mode 100644 (file)
index 0000000..d2dcc58
--- /dev/null
@@ -0,0 +1,584 @@
+#include <stdio.h>
+#include <dlfcn.h>
+
+# include <GLES/glplatform.h>
+# include "../headers/gl.h"
+
+///////////////////////////////////////
+// Disable dlog for debugging urgent issues //
+//#define LOG_TAG "CoreGL_GLES2"
+//#include <dlog.h>
+#define LOGE(...) fprintf(stderr, __VA_ARGS__)
+#define LOGW(...) fprintf(stderr, __VA_ARGS__)
+#define LOGD(...) fprintf(stderr, __VA_ARGS__)
+///////////////////////////////////////
+
+#define COREGL_API           __attribute__((visibility("default")))
+
+#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     COREGL_API extern RET_TYPE FUNC_NAME PARAM_LIST;
+#define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
+# include "../headers/sym_gl1.h"
+#undef _COREGL_EXT_SYMBOL
+#undef _COREGL_SYMBOL
+
+#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     RET_TYPE (*ovr_##FUNC_NAME) PARAM_LIST = NULL;
+#define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
+# include "../headers/sym_gl1.h"
+
+#undef _COREGL_EXT_SYMBOL
+#undef _COREGL_SYMBOL
+
+#define INIT_EXPORT()
+
+void *lib_handle = NULL;
+void (* set_driver_gl_version)(int version);
+
+__attribute__((constructor))
+int
+coregl_glwrap_init()
+{
+       lib_handle = dlopen("libCOREGL.so", RTLD_NOW);
+       if (!lib_handle) {
+               LOGE(" \E[40;31;1m%s\E[0m\n\n", dlerror());
+               LOGE(" \E[40;31;1mInvalid library link! (Check linkage of libEGL -> libCOREGL)\E[0m\n");
+               return 0;
+       }
+
+       set_driver_gl_version = dlsym(lib_handle, "set_driver_gl_version");
+       if(set_driver_gl_version)
+               set_driver_gl_version(1);
+       else
+               printf("%s\n", dlerror());
+
+#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) \
+   ovr_##FUNC_NAME = (__typeof__(ovr_##FUNC_NAME))dlsym(lib_handle, "coregl_api_"#FUNC_NAME); \
+       if (ovr_##FUNC_NAME == NULL) \
+       { \
+               LOGE("\E[40;31;1mCan't find a symbol '%s'!\E[0m\n\n", #FUNC_NAME); \
+               LOGE("\E[40;31;1mInvalid library link! (Check linkage of libGLESv1_CM -> libCOREGL)\E[0m\n"); \
+       }
+
+#define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
+#include "../headers/sym_gl1.h"
+#undef _COREGL_EXT_SYMBOL
+#undef _COREGL_SYMBOL
+
+       return 1;
+}
+
+void
+glAlphaFunc(GLenum func, GLclampf ref)
+{
+       ovr_glAlphaFunc(func, ref);
+}
+
+void
+glClipPlanef(GLenum plane, const GLfloat *equation)
+{
+       ovr_glClipPlanef(plane, equation);
+}
+
+void
+glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+       ovr_glColor4f(red, green, blue, alpha);
+}
+
+void
+glFogf(GLenum pname, GLfloat param)
+{
+       ovr_glFogf(pname, param);
+}
+
+void
+glFogfv(GLenum pname, const GLfloat *params)
+{
+       ovr_glFogfv(pname, params);
+}
+
+void
+glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+       ovr_glFrustumf(left, right, bottom, top, zNear, zFar);
+}
+
+void
+glGetClipPlanef(GLenum pname, GLfloat eqn[4])
+{
+       ovr_glGetClipPlanef(pname, eqn);
+}
+
+void
+glGetLightfv(GLenum light, GLenum pname, GLfloat *params)
+{
+       ovr_glGetLightfv(light, pname, params);
+}
+
+void
+glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params)
+{
+       ovr_glGetMaterialfv(face, pname, params);
+}
+
+void
+glGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params)
+{
+       ovr_glGetTexEnvfv(env, pname, params);
+}
+
+void
+glLightModelf(GLenum pname, GLfloat param)
+{
+       ovr_glLightModelf(pname, param);
+}
+
+void
+glLightModelfv(GLenum pname, const GLfloat *params)
+{
+       ovr_glLightModelfv(pname, params);
+}
+
+void
+glLightf(GLenum light, GLenum pname, GLfloat param)
+{
+       ovr_glLightf(light, pname, param);
+}
+
+void
+glLightfv(GLenum light, GLenum pname, const GLfloat *params)
+{
+       ovr_glLightfv(light, pname, params);
+}
+
+void
+glLoadMatrixf(const GLfloat *m)
+{
+       ovr_glLoadMatrixf(m);
+}
+
+void
+glMaterialf(GLenum face, GLenum pname, GLfloat param)
+{
+       ovr_glMaterialf(face, pname, param);
+}
+
+void
+glMaterialfv(GLenum face, GLenum pname, const GLfloat *params)
+{
+       ovr_glMaterialfv(face, pname, params);
+}
+
+void
+glMultMatrixf(const GLfloat *m)
+{
+       ovr_glMultMatrixf(m);
+}
+
+void
+glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+       ovr_glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void
+glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
+{
+       ovr_glNormal3f(nx, ny, nz);
+}
+
+void
+glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+       ovr_glOrthof(left, right, bottom, top, zNear, zFar);
+}
+
+void
+glPointParameterf(GLenum pname, GLfloat param)
+{
+       ovr_glPointParameterf(pname, param);
+}
+
+void
+glPointParameterfv(GLenum pname, const GLfloat *params)
+{
+       ovr_glPointParameterfv(pname, params);
+}
+
+void
+glPointSize(GLfloat size)
+{
+       ovr_glPointSize(size);
+}
+
+void
+glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+       ovr_glRotatef(angle, x, y, z);
+}
+
+void
+glScalef(GLfloat x, GLfloat y, GLfloat z)
+{
+       ovr_glScalef(x, y, z);
+}
+
+void
+glTexEnvf(GLenum target, GLenum pname, GLfloat param)
+{
+       ovr_glTexEnvf(target, pname, param);
+}
+
+void
+glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params)
+{
+       ovr_glTexEnvfv(target, pname, params);
+}
+
+void
+glTranslatef(GLfloat x, GLfloat y, GLfloat z)
+{
+       ovr_glTranslatef(x, y, z);
+}
+
+void
+glAlphaFuncx(GLenum func, GLclampx ref)
+{
+       ovr_glAlphaFuncx(func, ref);
+}
+
+void
+glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
+{
+       ovr_glClearColorx(red, green, blue, alpha);
+}
+
+void
+glClearDepthx(GLclampx depth)
+{
+       ovr_glClearDepthx(depth);
+}
+
+void
+glClientActiveTexture(GLenum texture)
+{
+       ovr_glClientActiveTexture(texture);
+}
+
+void
+glClipPlanex(GLenum plane, const GLfixed *equation)
+{
+       ovr_glClipPlanex(plane, equation);
+}
+
+void
+glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+       ovr_glColor4ub(red, green, blue, alpha);
+}
+
+void
+glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
+{
+       ovr_glColor4x(red, green, blue, alpha);
+}
+
+void
+glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+       ovr_glColorPointer(size, type, stride, pointer);
+}
+
+void
+glDepthRangex(GLclampx zNear, GLclampx zFar)
+{
+       ovr_glDepthRangex(zNear, zFar);
+}
+
+void
+glDisableClientState(GLenum array)
+{
+       ovr_glDisableClientState(array);
+}
+
+void
+glEnableClientState(GLenum array)
+{
+       ovr_glEnableClientState(array);
+}
+
+void
+glFogx(GLenum pname, GLfixed param)
+{
+       ovr_glFogx(pname, param);
+}
+
+void
+glFogxv(GLenum pname, const GLfixed *params)
+{
+       ovr_glFogxv(pname, params);
+}
+
+void
+glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+       ovr_glFrustumx(left, right, bottom, top, zNear, zFar);
+}
+
+void
+glGetClipPlanex(GLenum pname, GLfixed eqn[4])
+{
+       ovr_glGetClipPlanex(pname, eqn);
+}
+
+void
+glGetFixedv(GLenum pname, GLfixed *params)
+{
+       ovr_glGetFixedv(pname, params);
+}
+
+void
+glGetLightxv(GLenum light, GLenum pname, GLfixed *params)
+{
+       ovr_glGetLightxv(light, pname, params);
+}
+
+void
+glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params)
+{
+       ovr_glGetMaterialxv(face, pname, params);
+}
+
+void
+glGetTexEnviv(GLenum env, GLenum pname, GLint *params)
+{
+       ovr_glGetTexEnviv(env, pname, params);
+}
+
+void
+glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params)
+{
+       ovr_glGetTexEnvxv(env, pname, params);
+}
+
+void
+glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
+{
+       ovr_glGetTexParameterxv(target, pname, params);
+}
+
+void
+glLightModelx(GLenum pname, GLfixed param)
+{
+       ovr_glLightModelx(pname, param);
+}
+
+void
+glLightModelxv(GLenum pname, const GLfixed *params)
+{
+       ovr_glLightModelxv(pname, params);
+}
+
+void
+glLightx(GLenum light, GLenum pname, GLfixed param)
+{
+       ovr_glLightx(light, pname, param);
+}
+
+void
+glLightxv(GLenum light, GLenum pname, const GLfixed *params)
+{
+       ovr_glLightxv(light, pname, params);
+}
+
+void
+glLineWidthx(GLfixed width)
+{
+       ovr_glLineWidthx(width);
+}
+
+void
+glLoadIdentity(void)
+{
+       ovr_glLoadIdentity();
+}
+
+void
+glLoadMatrixx(const GLfixed *m)
+{
+       ovr_glLoadMatrixx(m);
+}
+
+void
+glLogicOp(GLenum opcode)
+{
+       ovr_glLogicOp(opcode);
+}
+
+void
+glMaterialx(GLenum face, GLenum pname, GLfixed param)
+{
+       ovr_glMaterialx(face, pname, param);
+}
+
+void
+glMaterialxv(GLenum face, GLenum pname, const GLfixed *params)
+{
+       ovr_glMaterialxv(face, pname, params);
+}
+
+void
+glMatrixMode(GLenum mode)
+{
+       ovr_glMatrixMode(mode);
+}
+
+void
+glMultMatrixx(const GLfixed *m)
+{
+       ovr_glMultMatrixx(m);
+}
+
+void
+glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
+{
+       ovr_glMultiTexCoord4x(target, s, t, r, q);
+}
+
+void
+glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz)
+{
+       ovr_glNormal3x(nx, ny, nz);
+}
+
+void
+glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+       ovr_glNormalPointer(type, stride, pointer);
+}
+
+void
+glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+       ovr_glOrthox(left, right, bottom, top, zNear, zFar);
+}
+
+void
+glPointParameterx(GLenum pname, GLfixed param)
+{
+       ovr_glPointParameterx(pname, param);
+}
+
+void
+glPointParameterxv(GLenum pname, const GLfixed *params)
+{
+       ovr_glPointParameterxv(pname, params);
+}
+
+void
+glPointSizex(GLfixed size)
+{
+       ovr_glPointSizex(size);
+}
+
+void
+glPolygonOffsetx(GLfixed factor, GLfixed units)
+{
+       ovr_glPolygonOffsetx(factor, units);
+}
+
+void
+glPopMatrix(void)
+{
+       ovr_glPopMatrix();
+}
+
+void
+glPushMatrix(void)
+{
+       ovr_glPushMatrix();
+}
+
+void
+glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
+{
+       ovr_glRotatex (angle, x, y, z);
+}
+
+void
+glSampleCoveragex(GLclampx value, GLboolean invert)
+{
+       ovr_glSampleCoveragex(value, invert);
+}
+
+void
+glScalex(GLfixed x, GLfixed y, GLfixed z)
+{
+       ovr_glScalex (x, y, z);
+}
+
+void
+glShadeModel(GLenum mode)
+{
+       ovr_glShadeModel(mode);
+}
+
+void
+glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+       ovr_glTexCoordPointer(size, type, stride, pointer);
+}
+
+void
+glTexEnvi(GLenum target, GLenum pname, GLint param)
+{
+       ovr_glTexEnvi(target, pname, param);
+}
+
+void
+glTexEnvx(GLenum target, GLenum pname, GLfixed param)
+{
+       ovr_glTexEnvx(target, pname, param);
+}
+
+void
+glTexEnviv(GLenum target, GLenum pname, const GLint *params)
+{
+       ovr_glTexEnviv(target, pname, params);
+}
+
+void
+glTexEnvxv(GLenum target, GLenum pname, const GLfixed *params)
+{
+       ovr_glTexEnvxv(target, pname, params);
+}
+
+void
+glTexParameterx(GLenum target, GLenum pname, GLfixed param)
+{
+       ovr_glTexParameterx(target, pname, param);
+}
+
+void
+glTexParameterxv(GLenum target, GLenum pname, const GLfixed *params)
+{
+       ovr_glTexParameterxv(target, pname, params);
+}
+
+void
+glTranslatex(GLfixed x, GLfixed y, GLfixed z)
+{
+       ovr_glTranslatex(x, y, z);
+}
+
+void
+glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+       ovr_glVertexPointer(size, type, stride, pointer);
+}
+
+/* Khronos GLES 1.1 CTS requires glPointSizePointerOES as shared library symbol.*/
+void
+glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+       ovr_glPointSizePointerOES(type, stride, pointer);
+}
similarity index 71%
rename from src/wraps/coregl_gl.c
rename to src/wraps/coregl_gl2.c
index 8081102..1596701 100644 (file)
 
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     COREGL_API extern RET_TYPE FUNC_NAME PARAM_LIST;
 #define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
-# include "../headers/sym_gl.h"
+# include "../headers/sym_gl2.h"
 #undef _COREGL_EXT_SYMBOL
 #undef _COREGL_SYMBOL
 
 #define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     RET_TYPE (*ovr_##FUNC_NAME) PARAM_LIST = NULL;
 #define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
-# include "../headers/sym_gl.h"
+# include "../headers/sym_gl2.h"
 #undef _COREGL_EXT_SYMBOL
 #undef _COREGL_SYMBOL
 
 #define INIT_EXPORT()
 
 void *lib_handle = NULL;
+void (* set_driver_gl_version)(int version);
 
 __attribute__((constructor))
 int
@@ -42,538 +43,26 @@ coregl_glwrap_init()
                return 0;
        }
 
-#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) \
-   ovr_##FUNC_NAME = (__typeof__(ovr_##FUNC_NAME))dlsym(lib_handle, "coregl_api_"#FUNC_NAME); \
-       if (ovr_##FUNC_NAME == NULL) \
-       { \
-               LOGE("\E[40;31;1mCan't find a symbol '%s'!\E[0m\n\n", #FUNC_NAME); \
-               LOGE("\E[40;31;1mInvalid library link! (Check linkage of libGLESv2 -> libCOREGL)\E[0m\n"); \
-       }
-
-#define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
-#include "../headers/sym_gl.h"
-#undef _COREGL_EXT_SYMBOL
-#undef _COREGL_SYMBOL
-
-       return 1;
-}
-
-/* Beginning of OpenGL ES 1.1*/
-void
-glAlphaFunc(GLenum func, GLclampf ref)
-{
-       ovr_glAlphaFunc(func, ref);
-}
-
-void
-glClipPlanef(GLenum plane, const GLfloat *equation)
-{
-       ovr_glClipPlanef(plane, equation);
-}
-
-void
-glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
-{
-       ovr_glColor4f(red, green, blue, alpha);
-}
-
-void
-glFogf(GLenum pname, GLfloat param)
-{
-       ovr_glFogf(pname, param);
-}
-
-void
-glFogfv(GLenum pname, const GLfloat *params)
-{
-       ovr_glFogfv(pname, params);
-}
-
-void
-glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
-{
-       ovr_glFrustumf(left, right, bottom, top, zNear, zFar);
-}
-
-void
-glGetClipPlanef(GLenum pname, GLfloat eqn[4])
-{
-       ovr_glGetClipPlanef(pname, eqn);
-}
-
-void
-glGetLightfv(GLenum light, GLenum pname, GLfloat *params)
-{
-       ovr_glGetLightfv(light, pname, params);
-}
-
-void
-glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params)
-{
-       ovr_glGetMaterialfv(face, pname, params);
-}
-
-void
-glGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params)
-{
-       ovr_glGetTexEnvfv(env, pname, params);
-}
-
-void
-glLightModelf(GLenum pname, GLfloat param)
-{
-       ovr_glLightModelf(pname, param);
-}
-
-void
-glLightModelfv(GLenum pname, const GLfloat *params)
-{
-       ovr_glLightModelfv(pname, params);
-}
-
-void
-glLightf(GLenum light, GLenum pname, GLfloat param)
-{
-       ovr_glLightf(light, pname, param);
-}
-
-void
-glLightfv(GLenum light, GLenum pname, const GLfloat *params)
-{
-       ovr_glLightfv(light, pname, params);
-}
-
-void
-glLoadMatrixf(const GLfloat *m)
-{
-       ovr_glLoadMatrixf(m);
-}
-
-void
-glMaterialf(GLenum face, GLenum pname, GLfloat param)
-{
-       ovr_glMaterialf(face, pname, param);
-}
-
-void
-glMaterialfv(GLenum face, GLenum pname, const GLfloat *params)
-{
-       ovr_glMaterialfv(face, pname, params);
-}
-
-void
-glMultMatrixf(const GLfloat *m)
-{
-       ovr_glMultMatrixf(m);
-}
-
-void
-glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
-{
-       ovr_glMultiTexCoord4f(target, s, t, r, q);
-}
-
-void
-glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
-{
-       ovr_glNormal3f(nx, ny, nz);
-}
-
-void
-glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
-{
-       ovr_glOrthof(left, right, bottom, top, zNear, zFar);
-}
-
-void
-glPointParameterf(GLenum pname, GLfloat param)
-{
-       ovr_glPointParameterf(pname, param);
-}
-
-void
-glPointParameterfv(GLenum pname, const GLfloat *params)
-{
-       ovr_glPointParameterfv(pname, params);
-}
-
-void
-glPointSize(GLfloat size)
-{
-       ovr_glPointSize(size);
-}
-
-void
-glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
-{
-       ovr_glRotatef(angle, x, y, z);
-}
-
-void
-glScalef(GLfloat x, GLfloat y, GLfloat z)
-{
-       ovr_glScalef(x, y, z);
-}
-
-void
-glTexEnvf(GLenum target, GLenum pname, GLfloat param)
-{
-       ovr_glTexEnvf(target, pname, param);
-}
-
-void
-glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params)
-{
-       ovr_glTexEnvfv(target, pname, params);
-}
-
-void
-glTranslatef(GLfloat x, GLfloat y, GLfloat z)
-{
-       ovr_glTranslatef(x, y, z);
-}
-
-void
-glAlphaFuncx(GLenum func, GLclampx ref)
-{
-       ovr_glAlphaFuncx(func, ref);
-}
-
-void
-glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
-{
-       ovr_glClearColorx(red, green, blue, alpha);
-}
-
-void
-glClearDepthx(GLclampx depth)
-{
-       ovr_glClearDepthx(depth);
-}
-
-void
-glClientActiveTexture(GLenum texture)
-{
-       ovr_glClientActiveTexture(texture);
-}
-
-void
-glClipPlanex(GLenum plane, const GLfixed *equation)
-{
-       ovr_glClipPlanex(plane, equation);
-}
-
-void
-glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
-{
-       ovr_glColor4ub(red, green, blue, alpha);
-}
-
-void
-glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
-{
-       ovr_glColor4x(red, green, blue, alpha);
-}
-
-void
-glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       ovr_glColorPointer(size, type, stride, pointer);
-}
-
-void
-glDepthRangex(GLclampx zNear, GLclampx zFar)
-{
-       ovr_glDepthRangex(zNear, zFar);
-}
-
-void
-glDisableClientState(GLenum array)
-{
-       ovr_glDisableClientState(array);
-}
-
-void
-glEnableClientState(GLenum array)
-{
-       ovr_glEnableClientState(array);
-}
-
-void
-glFogx(GLenum pname, GLfixed param)
-{
-       ovr_glFogx(pname, param);
-}
-
-void
-glFogxv(GLenum pname, const GLfixed *params)
-{
-       ovr_glFogxv(pname, params);
-}
-
-void
-glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
-{
-       ovr_glFrustumx(left, right, bottom, top, zNear, zFar);
-}
-
-void
-glGetClipPlanex(GLenum pname, GLfixed eqn[4])
-{
-       ovr_glGetClipPlanex(pname, eqn);
-}
-
-void
-glGetFixedv(GLenum pname, GLfixed *params)
-{
-       ovr_glGetFixedv(pname, params);
-}
-
-void
-glGetLightxv(GLenum light, GLenum pname, GLfixed *params)
-{
-       ovr_glGetLightxv(light, pname, params);
-}
-
-void
-glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params)
-{
-       ovr_glGetMaterialxv(face, pname, params);
-}
-
-void
-glGetTexEnviv(GLenum env, GLenum pname, GLint *params)
-{
-       ovr_glGetTexEnviv(env, pname, params);
-}
-
-void
-glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params)
-{
-       ovr_glGetTexEnvxv(env, pname, params);
-}
-
-void
-glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
-{
-       ovr_glGetTexParameterxv(target, pname, params);
-}
-
-void
-glLightModelx(GLenum pname, GLfixed param)
-{
-       ovr_glLightModelx(pname, param);
-}
-
-void
-glLightModelxv(GLenum pname, const GLfixed *params)
-{
-       ovr_glLightModelxv(pname, params);
-}
-
-void
-glLightx(GLenum light, GLenum pname, GLfixed param)
-{
-       ovr_glLightx(light, pname, param);
-}
-
-void
-glLightxv(GLenum light, GLenum pname, const GLfixed *params)
-{
-       ovr_glLightxv(light, pname, params);
-}
-
-void
-glLineWidthx(GLfixed width)
-{
-       ovr_glLineWidthx(width);
-}
-
-void
-glLoadIdentity(void)
-{
-       ovr_glLoadIdentity();
-}
-
-void
-glLoadMatrixx(const GLfixed *m)
-{
-       ovr_glLoadMatrixx(m);
-}
-
-void
-glLogicOp(GLenum opcode)
-{
-       ovr_glLogicOp(opcode);
-}
-
-void
-glMaterialx(GLenum face, GLenum pname, GLfixed param)
-{
-       ovr_glMaterialx(face, pname, param);
-}
-
-void
-glMaterialxv(GLenum face, GLenum pname, const GLfixed *params)
-{
-       ovr_glMaterialxv(face, pname, params);
-}
-
-void
-glMatrixMode(GLenum mode)
-{
-       ovr_glMatrixMode(mode);
-}
-
-void
-glMultMatrixx(const GLfixed *m)
-{
-       ovr_glMultMatrixx(m);
-}
-
-void
-glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
-{
-       ovr_glMultiTexCoord4x(target, s, t, r, q);
-}
-
-void
-glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz)
-{
-       ovr_glNormal3x(nx, ny, nz);
-}
-
-void
-glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       ovr_glNormalPointer(type, stride, pointer);
-}
-
-void
-glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
-{
-       ovr_glOrthox(left, right, bottom, top, zNear, zFar);
-}
-
-void
-glPointParameterx(GLenum pname, GLfixed param)
-{
-       ovr_glPointParameterx(pname, param);
-}
-
-void
-glPointParameterxv(GLenum pname, const GLfixed *params)
-{
-       ovr_glPointParameterxv(pname, params);
-}
-
-void
-glPointSizex(GLfixed size)
-{
-       ovr_glPointSizex(size);
-}
-
-void
-glPolygonOffsetx(GLfixed factor, GLfixed units)
-{
-       ovr_glPolygonOffsetx(factor, units);
-}
-
-void
-glPopMatrix(void)
-{
-       ovr_glPopMatrix();
-}
-
-void
-glPushMatrix(void)
-{
-       ovr_glPushMatrix();
-}
-
-void
-glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
-{
-       ovr_glRotatex (angle, x, y, z);
-}
-
-void
-glSampleCoveragex(GLclampx value, GLboolean invert)
-{
-       ovr_glSampleCoveragex(value, invert);
-}
-
-void
-glScalex(GLfixed x, GLfixed y, GLfixed z)
-{
-       ovr_glScalex (x, y, z);
-}
-
-void
-glShadeModel(GLenum mode)
-{
-       ovr_glShadeModel(mode);
-}
-
-void
-glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       ovr_glTexCoordPointer(size, type, stride, pointer);
-}
-
-void
-glTexEnvi(GLenum target, GLenum pname, GLint param)
-{
-       ovr_glTexEnvi(target, pname, param);
-}
-
-void
-glTexEnvx(GLenum target, GLenum pname, GLfixed param)
-{
-       ovr_glTexEnvx(target, pname, param);
-}
-
-void
-glTexEnviv(GLenum target, GLenum pname, const GLint *params)
-{
-       ovr_glTexEnviv(target, pname, params);
-}
-
-void
-glTexEnvxv(GLenum target, GLenum pname, const GLfixed *params)
-{
-       ovr_glTexEnvxv(target, pname, params);
-}
-
-void
-glTexParameterx(GLenum target, GLenum pname, GLfixed param)
-{
-       ovr_glTexParameterx(target, pname, param);
-}
-
-void
-glTexParameterxv(GLenum target, GLenum pname, const GLfixed *params)
-{
-       ovr_glTexParameterxv(target, pname, params);
-}
+       set_driver_gl_version = dlsym(lib_handle, "set_driver_gl_version");
+       if(set_driver_gl_version)
+               set_driver_gl_version(2);
+       else
+               LOGE("%s\n", dlerror());
 
-void
-glTranslatex(GLfixed x, GLfixed y, GLfixed z)
-{
-       ovr_glTranslatex(x, y, z);
-}
+#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) \
+   ovr_##FUNC_NAME = (__typeof__(ovr_##FUNC_NAME))dlsym(lib_handle, "coregl_api_"#FUNC_NAME); \
+       if (ovr_##FUNC_NAME == NULL) \
+       { \
+               LOGE("\E[40;31;1mCan't find a symbol '%s'!\E[0m\n\n", #FUNC_NAME); \
+               LOGE("\E[40;31;1mInvalid library link! (Check linkage of libGLESv2 -> libCOREGL)\E[0m\n"); \
+       }
 
-void
-glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-{
-       ovr_glVertexPointer(size, type, stride, pointer);
-}
-/* Ending of OpenGL ES 1.1*/
+#define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
+#include "../headers/sym_gl2.h"
+#undef _COREGL_EXT_SYMBOL
+#undef _COREGL_SYMBOL
 
-void
-glActiveTexture(GLenum texture)
-{
-       ovr_glActiveTexture(texture);
+       return 1;
 }
 
 void
@@ -589,12 +78,6 @@ glBindAttribLocation(GLuint program, GLuint index, const char *name)
 }
 
 void
-glBindBuffer(GLenum target, GLuint buffer)
-{
-       ovr_glBindBuffer(target, buffer);
-}
-
-void
 glBindFramebuffer(GLenum target, GLuint framebuffer)
 {
        ovr_glBindFramebuffer(target, framebuffer);
@@ -607,36 +90,18 @@ glBindRenderbuffer(GLenum target, GLuint renderbuffer)
 }
 
 void
-glBindTexture(GLenum target, GLuint texture)
-{
-       ovr_glBindTexture(target, texture);
-}
-
-void
 glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
 {
        ovr_glBlendColor(red, green, blue, alpha);
 }
 
 void
-glBlendEquation(GLenum mode)
-{
-       ovr_glBlendEquation(mode);
-}
-
-void
 glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
 {
        ovr_glBlendEquationSeparate(modeRGB, modeAlpha);
 }
 
 void
-glBlendFunc(GLenum sfactor, GLenum dfactor)
-{
-       ovr_glBlendFunc(sfactor, dfactor);
-}
-
-void
 glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha,
                    GLenum dstAlpha)
 {
@@ -644,16 +109,9 @@ glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha,
 }
 
 void
-glBufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage)
-{
-       ovr_glBufferData(target, size, data, usage);
-}
-
-void
-glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size,
-               const void *data)
+glBlendEquation(GLenum mode)
 {
-       ovr_glBufferSubData(target, offset, size, data);
+       ovr_glBlendEquation(mode);
 }
 
 GLenum
@@ -663,73 +121,11 @@ glCheckFramebufferStatus(GLenum target)
 }
 
 void
-glClear(GLbitfield mask)
-{
-       ovr_glClear(mask);
-}
-
-void
-glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
-{
-       ovr_glClearColor(red, green, blue, alpha);
-}
-
-void
-glClearDepthf(GLclampf depth)
-{
-       ovr_glClearDepthf(depth);
-}
-
-void
-glClearStencil(GLint s)
-{
-       ovr_glClearStencil(s);
-}
-
-void
-glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
-{
-       ovr_glColorMask(red, green, blue, alpha);
-}
-
-void
 glCompileShader(GLuint shader)
 {
        ovr_glCompileShader(shader);
 }
 
-void
-glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
-                      GLsizei width, GLsizei height, GLint border, GLsizei imageSize,
-                      const void *data)
-{
-       ovr_glCompressedTexImage2D(target, level, internalformat, width, height, border,
-                                  imageSize, data);
-}
-
-void
-glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset,
-                         GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize,
-                         const void *data)
-{
-       ovr_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height,
-                                     format, imageSize, data);
-}
-
-void
-glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x,
-                GLint y, GLsizei width, GLsizei height, GLint border)
-{
-       ovr_glCopyTexImage2D(target, level, internalformat, x, y, width, height,
-                            border);
-}
-
-void
-glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
-                   GLint x, GLint y, GLsizei width, GLsizei height)
-{
-       ovr_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
-}
 
 GLuint
 glCreateProgram(void)
@@ -744,18 +140,6 @@ glCreateShader(GLenum type)
 }
 
 void
-glCullFace(GLenum mode)
-{
-       ovr_glCullFace(mode);
-}
-
-void
-glDeleteBuffers(GLsizei n, const GLuint *buffers)
-{
-       ovr_glDeleteBuffers(n, buffers);
-}
-
-void
 glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
 {
        ovr_glDeleteFramebuffers(n, framebuffers);
@@ -780,84 +164,24 @@ glDeleteShader(GLuint shader)
 }
 
 void
-glDeleteTextures(GLsizei n, const GLuint *textures)
-{
-       ovr_glDeleteTextures(n, textures);
-}
-
-void
-glDepthFunc(GLenum func)
-{
-       ovr_glDepthFunc(func);
-}
-
-void
-glDepthMask(GLboolean flag)
-{
-       ovr_glDepthMask(flag);
-}
-
-void
-glDepthRangef(GLclampf zNear, GLclampf zFar)
-{
-       ovr_glDepthRangef(zNear, zFar);
-}
-
-void
 glDetachShader(GLuint program, GLuint shader)
 {
        ovr_glDetachShader(program, shader);
 }
 
 void
-glDisable(GLenum cap)
-{
-       ovr_glDisable(cap);
-}
-
-void
 glDisableVertexAttribArray(GLuint index)
 {
        ovr_glDisableVertexAttribArray(index);
 }
 
 void
-glDrawArrays(GLenum mode, GLint first, GLsizei count)
-{
-       ovr_glDrawArrays(mode, first, count);
-}
-
-void
-glDrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices)
-{
-       ovr_glDrawElements(mode, count, type, indices);
-}
-
-void
-glEnable(GLenum cap)
-{
-       ovr_glEnable(cap);
-}
-
-void
 glEnableVertexAttribArray(GLuint index)
 {
        ovr_glEnableVertexAttribArray(index);
 }
 
 void
-glFinish(void)
-{
-       ovr_glFinish();
-}
-
-void
-glFlush(void)
-{
-       ovr_glFlush();
-}
-
-void
 glFramebufferRenderbuffer(GLenum target, GLenum attachment,
                          GLenum renderbuffertarget, GLuint renderbuffer)
 {
@@ -873,12 +197,6 @@ glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget,
 }
 
 void
-glFrontFace(GLenum mode)
-{
-       ovr_glFrontFace(mode);
-}
-
-void
 glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params)
 {
        ovr_glGetVertexAttribfv(index, pname, params);
@@ -897,18 +215,6 @@ glGetVertexAttribPointerv(GLuint index, GLenum pname, void **pointer)
 }
 
 void
-glHint(GLenum target, GLenum mode)
-{
-       ovr_glHint(target, mode);
-}
-
-void
-glGenBuffers(GLsizei n, GLuint *buffers)
-{
-       ovr_glGenBuffers(n, buffers);
-}
-
-void
 glGenerateMipmap(GLenum target)
 {
        ovr_glGenerateMipmap(target);
@@ -927,12 +233,6 @@ glGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
 }
 
 void
-glGenTextures(GLsizei n, GLuint *textures)
-{
-       ovr_glGenTextures(n, textures);
-}
-
-void
 glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize,
                  GLsizei *length, GLint *size, GLenum *type, char *name)
 {
@@ -960,30 +260,6 @@ glGetAttribLocation(GLuint program, const char *name)
 }
 
 void
-glGetBooleanv(GLenum pname, GLboolean *params)
-{
-       ovr_glGetBooleanv(pname, params);
-}
-
-void
-glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
-{
-       ovr_glGetBufferParameteriv(target, pname, params);
-}
-
-GLenum
-glGetError(void)
-{
-       return ovr_glGetError();
-}
-
-void
-glGetFloatv(GLenum pname, GLfloat *params)
-{
-       ovr_glGetFloatv(pname, params);
-}
-
-void
 glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment,
                                      GLenum pname, GLint *params)
 {
@@ -991,12 +267,6 @@ glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment,
 }
 
 void
-glGetIntegerv(GLenum pname, GLint *params)
-{
-       ovr_glGetIntegerv(pname, params);
-}
-
-void
 glGetProgramiv(GLuint program, GLenum pname, GLint *params)
 {
        ovr_glGetProgramiv(program, pname, params);
@@ -1041,24 +311,6 @@ glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei *length, char *source)
        ovr_glGetShaderSource(shader, bufsize, length, source);
 }
 
-const GLubyte *
-glGetString(GLenum name)
-{
-       return ovr_glGetString(name);
-}
-
-void
-glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
-{
-       ovr_glGetTexParameterfv(target, pname, params);
-}
-
-void
-glGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
-{
-       ovr_glGetTexParameteriv(target, pname, params);
-}
-
 void
 glGetUniformfv(GLuint program, GLint location, GLfloat *params)
 {
@@ -1078,18 +330,6 @@ glGetUniformLocation(GLuint program, const char *name)
 }
 
 GLboolean
-glIsBuffer(GLuint buffer)
-{
-       return ovr_glIsBuffer(buffer);
-}
-
-GLboolean
-glIsEnabled(GLenum cap)
-{
-       return ovr_glIsEnabled(cap);
-}
-
-GLboolean
 glIsFramebuffer(GLuint framebuffer)
 {
        return ovr_glIsFramebuffer(framebuffer);
@@ -1113,18 +353,6 @@ glIsShader(GLuint shader)
        return ovr_glIsShader(shader);
 }
 
-GLboolean
-glIsTexture(GLuint texture)
-{
-       return ovr_glIsTexture(texture);
-}
-
-void
-glLineWidth(GLfloat width)
-{
-       ovr_glLineWidth(width);
-}
-
 void
 glLinkProgram(GLuint program)
 {
@@ -1132,25 +360,6 @@ glLinkProgram(GLuint program)
 }
 
 void
-glPixelStorei(GLenum pname, GLint param)
-{
-       ovr_glPixelStorei(pname, param);
-}
-
-void
-glPolygonOffset(GLfloat factor, GLfloat units)
-{
-       ovr_glPolygonOffset(factor, units);
-}
-
-void
-glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format,
-            GLenum type, void *pixels)
-{
-       ovr_glReadPixels(x, y, width, height, format, type, pixels);
-}
-
-void
 glReleaseShaderCompiler(void)
 {
        ovr_glReleaseShaderCompiler();
@@ -1164,18 +373,6 @@ glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width,
 }
 
 void
-glSampleCoverage(GLclampf value, GLboolean invert)
-{
-       ovr_glSampleCoverage(value, invert);
-}
-
-void
-glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
-{
-       ovr_glScissor(x, y, width, height);
-}
-
-void
 glShaderBinary(GLsizei n, const GLuint *shaders, GLenum binaryformat,
               const void *binary, GLsizei length)
 {
@@ -1189,11 +386,6 @@ glShaderSource(GLuint shader, GLsizei count, const char **string,
        ovr_glShaderSource(shader, count, string, length);
 }
 
-void
-glStencilFunc(GLenum func, GLint ref, GLuint mask)
-{
-       ovr_glStencilFunc(func, ref, mask);
-}
 
 void
 glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
@@ -1202,70 +394,18 @@ glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
 }
 
 void
-glStencilMask(GLuint mask)
-{
-       ovr_glStencilMask(mask);
-}
-
-void
 glStencilMaskSeparate(GLenum face, GLuint mask)
 {
        ovr_glStencilMaskSeparate(face, mask);
 }
 
 void
-glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
-{
-       ovr_glStencilOp(fail, zfail, zpass);
-}
-
-void
 glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
 {
        ovr_glStencilOpSeparate(face, fail, zfail, zpass);
 }
 
 void
-glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width,
-            GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)
-{
-       ovr_glTexImage2D(target, level, internalformat, width, height, border, format,
-                        type, pixels);
-}
-
-void
-glTexParameterf(GLenum target, GLenum pname, GLfloat param)
-{
-       ovr_glTexParameterf(target, pname, param);
-}
-
-void
-glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
-{
-       ovr_glTexParameterfv(target, pname, params);
-}
-
-void
-glTexParameteri(GLenum target, GLenum pname, GLint param)
-{
-       ovr_glTexParameteri(target, pname, param);
-}
-
-void
-glTexParameteriv(GLenum target, GLenum pname, const GLint *params)
-{
-       ovr_glTexParameteriv(target, pname, params);
-}
-
-void
-glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
-               GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
-{
-       ovr_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format,
-                           type, pixels);
-}
-
-void
 glUniform1f(GLint location, GLfloat x)
 {
        ovr_glUniform1f(location, x);
@@ -1455,12 +595,6 @@ glVertexAttribPointer(GLuint index, GLint size, GLenum type,
        ovr_glVertexAttribPointer(index, size, type, normalized, stride, pointer);
 }
 
-void
-glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
-{
-       ovr_glViewport(x, y, width, height);
-}
-
 /* OpenGL ES 3.0 */
 void
 glReadBuffer(GLenum mode)
@@ -2623,11 +1757,3 @@ glVertexBindingDivisor (GLuint bindingindex, GLuint divisor)
 {
        ovr_glVertexBindingDivisor (bindingindex, divisor);
 }
-
-void
-glGetPointerv(GLenum pname, GLvoid **params)
-{
-       ovr_glGetPointerv(pname, params);
-}
-
-
diff --git a/src/wraps/coregl_gl_common.c b/src/wraps/coregl_gl_common.c
new file mode 100644 (file)
index 0000000..2422f74
--- /dev/null
@@ -0,0 +1,436 @@
+/*
+* File :
+*      coregl_gl_common.c
+* Description:
+*      APIs in this file are both implemented in GLES1.1 and GLES2.0, this file will be compiled into
+*      libGLESv1_CM and libGLESv2
+*/
+
+#include <stdio.h>
+#include <dlfcn.h>
+
+# include <GLES/glplatform.h>
+# include "../headers/gl.h"
+
+///////////////////////////////////////
+// Disable dlog for debugging urgent issues //
+//#define LOG_TAG "CoreGL_GLES2"
+//#include <dlog.h>
+#define LOGE(...) fprintf(stderr, __VA_ARGS__)
+#define LOGW(...) fprintf(stderr, __VA_ARGS__)
+#define LOGD(...) fprintf(stderr, __VA_ARGS__)
+///////////////////////////////////////
+
+#define COREGL_API           __attribute__((visibility("default")))
+
+#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     COREGL_API extern RET_TYPE FUNC_NAME PARAM_LIST;
+#define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
+# include "../headers/sym_gl_common.h"
+#undef _COREGL_EXT_SYMBOL
+#undef _COREGL_SYMBOL
+
+#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)     RET_TYPE (*ovr_##FUNC_NAME) PARAM_LIST = NULL;
+#define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
+# include "../headers/sym_gl_common.h"
+#undef _COREGL_EXT_SYMBOL
+#undef _COREGL_SYMBOL
+
+#define INIT_EXPORT()
+
+void *lib_handle_common = NULL;
+
+__attribute__((constructor))
+int
+coregl_glwrap_init_common()
+{
+       lib_handle_common = dlopen("libCOREGL.so", RTLD_NOW);
+       if (!lib_handle_common) {
+               LOGE(" \E[40;31;1m%s\E[0m\n\n", dlerror());
+               LOGE(" \E[40;31;1mInvalid library link! (Check linkage of libEGL -> libCOREGL)\E[0m\n");
+               return 0;
+       }
+
+#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) \
+   ovr_##FUNC_NAME = (__typeof__(ovr_##FUNC_NAME))dlsym(lib_handle_common, "coregl_api_"#FUNC_NAME); \
+       if (ovr_##FUNC_NAME == NULL) \
+       { \
+               LOGE("\E[40;31;1mCan't find a symbol '%s'!\E[0m\n\n", #FUNC_NAME); \
+               LOGE("\E[40;31;1mInvalid library link! (Check linkage of libGLESv2 -> libCOREGL)\E[0m\n"); \
+       }
+
+#define _COREGL_EXT_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST)
+#include "../headers/sym_gl_common.h"
+#undef _COREGL_EXT_SYMBOL
+#undef _COREGL_SYMBOL
+
+       return 1;
+}
+
+void
+glActiveTexture(GLenum texture)
+{
+       ovr_glActiveTexture(texture);
+}
+
+void
+glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+       ovr_glClearColor(red, green, blue, alpha);
+}
+
+void
+glClearDepthf(GLclampf depth)
+{
+       ovr_glClearDepthf(depth);
+}
+
+void
+glDepthRangef(GLclampf zNear, GLclampf zFar)
+{
+       ovr_glDepthRangef(zNear, zFar);
+}
+
+void
+glGetFloatv(GLenum pname, GLfloat *params)
+{
+       ovr_glGetFloatv(pname, params);
+}
+
+void
+glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
+{
+       ovr_glGetTexParameterfv(target, pname, params);
+}
+
+void
+glLineWidth(GLfloat width)
+{
+       ovr_glLineWidth(width);
+}
+
+void
+glPolygonOffset(GLfloat factor, GLfloat units)
+{
+       ovr_glPolygonOffset(factor, units);
+}
+
+void
+glTexParameterf(GLenum target, GLenum pname, GLfloat param)
+{
+       ovr_glTexParameterf(target, pname, param);
+}
+
+void
+glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
+{
+       ovr_glTexParameterfv(target, pname, params);
+}
+
+void
+glBindBuffer(GLenum target, GLuint buffer)
+{
+       ovr_glBindBuffer(target, buffer);
+}
+
+void
+glBindTexture(GLenum target, GLuint texture)
+{
+       ovr_glBindTexture(target, texture);
+}
+
+void
+glBlendFunc(GLenum sfactor, GLenum dfactor)
+{
+       ovr_glBlendFunc(sfactor, dfactor);
+}
+
+void
+glBufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage)
+{
+       ovr_glBufferData(target, size, data, usage);
+}
+
+void
+glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size,
+               const void *data)
+{
+       ovr_glBufferSubData(target, offset, size, data);
+}
+
+void
+glClear(GLbitfield mask)
+{
+       ovr_glClear(mask);
+}
+
+void
+glClearStencil(GLint s)
+{
+       ovr_glClearStencil(s);
+}
+
+void
+glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+       ovr_glColorMask(red, green, blue, alpha);
+}
+
+void
+glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
+                      GLsizei width, GLsizei height, GLint border, GLsizei imageSize,
+                      const void *data)
+{
+       ovr_glCompressedTexImage2D(target, level, internalformat, width, height, border,
+                                  imageSize, data);
+}
+
+void
+glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset,
+                         GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize,
+                         const void *data)
+{
+       ovr_glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height,
+                                     format, imageSize, data);
+}
+
+void
+glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x,
+                GLint y, GLsizei width, GLsizei height, GLint border)
+{
+       ovr_glCopyTexImage2D(target, level, internalformat, x, y, width, height,
+                            border);
+}
+
+void
+glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+                   GLint x, GLint y, GLsizei width, GLsizei height)
+{
+       ovr_glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void
+glCullFace(GLenum mode)
+{
+       ovr_glCullFace(mode);
+}
+
+void
+glDeleteBuffers(GLsizei n, const GLuint *buffers)
+{
+       ovr_glDeleteBuffers(n, buffers);
+}
+
+void
+glDeleteTextures(GLsizei n, const GLuint *textures)
+{
+       ovr_glDeleteTextures(n, textures);
+}
+
+void
+glDepthFunc(GLenum func)
+{
+       ovr_glDepthFunc(func);
+}
+
+void
+glDepthMask(GLboolean flag)
+{
+       ovr_glDepthMask(flag);
+}
+
+void
+glDisable(GLenum cap)
+{
+       ovr_glDisable(cap);
+}
+
+void
+glDrawArrays(GLenum mode, GLint first, GLsizei count)
+{
+       ovr_glDrawArrays(mode, first, count);
+}
+
+void
+glDrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices)
+{
+       ovr_glDrawElements(mode, count, type, indices);
+}
+
+void
+glEnable(GLenum cap)
+{
+       ovr_glEnable(cap);
+}
+
+void
+glFinish(void)
+{
+       ovr_glFinish();
+}
+
+void
+glFlush(void)
+{
+       ovr_glFlush();
+}
+
+void
+glFrontFace(GLenum mode)
+{
+       ovr_glFrontFace(mode);
+}
+
+void
+glGetBooleanv(GLenum pname, GLboolean *params)
+{
+       ovr_glGetBooleanv(pname, params);
+}
+
+void
+glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
+{
+       ovr_glGetBufferParameteriv(target, pname, params);
+}
+
+void
+glGenBuffers(GLsizei n, GLuint *buffers)
+{
+       ovr_glGenBuffers(n, buffers);
+}
+
+void
+glGenTextures(GLsizei n, GLuint *textures)
+{
+       ovr_glGenTextures(n, textures);
+}
+
+GLenum
+glGetError(void)
+{
+       return ovr_glGetError();
+}
+
+void
+glGetIntegerv(GLenum pname, GLint *params)
+{
+       ovr_glGetIntegerv(pname, params);
+}
+
+void
+glGetPointerv(GLenum pname, GLvoid **params)
+{
+       ovr_glGetPointerv(pname, params);
+}
+
+const GLubyte *
+glGetString(GLenum name)
+{
+       return ovr_glGetString(name);
+}
+
+void
+glGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
+{
+       ovr_glGetTexParameteriv(target, pname, params);
+}
+
+void
+glHint(GLenum target, GLenum mode)
+{
+       ovr_glHint(target, mode);
+}
+
+GLboolean
+glIsBuffer(GLuint buffer)
+{
+       return ovr_glIsBuffer(buffer);
+}
+
+GLboolean
+glIsEnabled(GLenum cap)
+{
+       return ovr_glIsEnabled(cap);
+}
+
+GLboolean
+glIsTexture(GLuint texture)
+{
+       return ovr_glIsTexture(texture);
+}
+void
+glPixelStorei(GLenum pname, GLint param)
+{
+       ovr_glPixelStorei(pname, param);
+}
+
+void
+glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format,
+            GLenum type, void *pixels)
+{
+       ovr_glReadPixels(x, y, width, height, format, type, pixels);
+}
+
+void
+glSampleCoverage(GLclampf value, GLboolean invert)
+{
+       ovr_glSampleCoverage(value, invert);
+}
+
+void
+glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+       ovr_glScissor(x, y, width, height);
+}
+
+
+void
+glStencilFunc(GLenum func, GLint ref, GLuint mask)
+{
+       ovr_glStencilFunc(func, ref, mask);
+}
+
+void
+glStencilMask(GLuint mask)
+{
+       ovr_glStencilMask(mask);
+}
+
+void
+glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
+{
+       ovr_glStencilOp(fail, zfail, zpass);
+}
+
+void
+glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width,
+            GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)
+{
+       ovr_glTexImage2D(target, level, internalformat, width, height, border, format,
+                        type, pixels);
+}
+
+void
+glTexParameteri(GLenum target, GLenum pname, GLint param)
+{
+       ovr_glTexParameteri(target, pname, param);
+}
+
+void
+glTexParameteriv(GLenum target, GLenum pname, const GLint *params)
+{
+       ovr_glTexParameteriv(target, pname, params);
+}
+
+void
+glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
+               GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
+{
+       ovr_glTexSubImage2D(target, level, xoffset, yoffset, width, height, format,
+                           type, pixels);
+}
+
+void
+glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+       ovr_glViewport(x, y, width, height);
+}