1.add fastpath APIs for OpenGLES_DDK 40/56340/1
authorxing.huang <xing.huang@samsung.com>
Thu, 26 Nov 2015 07:02:29 +0000 (15:02 +0800)
committerMun, Gwan-gyeong <kk.moon@samsung.com>
Wed, 6 Jan 2016 10:43:20 +0000 (19:43 +0900)
2.open macro to support GL_OES_EGL_image_external and GL_EXT_disjoint_timer_query
3.add support for the api which not needed by fastpath mode
4.egl extension call API through eglGetProcAddress

Change-Id: I0c8084f21c7d3d840ef98d95b71842408ab89a2a

include_KHR/GLES/glext.h
include_KHR/GLES2/gl2ext.h
src/coregl_export_gl.c
src/headers/gl.h
src/headers/sym_gl.h
src/modules/fastpath/coregl_fastpath.c
src/modules/fastpath/coregl_fastpath_gl.c
src/modules/tracepath/coregl_tracepath.c
src/modules/tracepath/coregl_tracepath_gl.c
src/wraps/coregl_gl.c

index 0373451..6d6f375 100644 (file)
@@ -688,6 +688,7 @@ GL_API void GL_APIENTRY glLoadMatrixxOES (const GLfixed *m);
 GL_API void GL_APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param);
 GL_API void GL_APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *params);
 GL_API void GL_APIENTRY glMultMatrixxOES (const GLfixed *m);
+GL_API void GL_APIENTRY glMultiTexCoord4bOES (GLenum target, GLbyte s, GLbyte t, GLbyte r, GLbyte q);
 GL_API void GL_APIENTRY glMultiTexCoord4xOES (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
 GL_API void GL_APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz);
 GL_API void GL_APIENTRY glOrthoxOES (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
@@ -743,6 +744,7 @@ typedef void (GL_APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, c
 typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param);
 typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params);
 typedef void (GL_APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z);
+typedef void (GL_APIENTRYP PFNGLMULTITEXCOORD4BOESPROC) (GLenum target, GLbyte s, GLbyte t, GLbyte r, GLbyte q);
 #endif
 
 /* GL_OES_framebuffer_object */
index e004151..bcd0a8f 100644 (file)
@@ -140,7 +140,13 @@ typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRPROC) (GLenum identifier, GLuin
 typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei length, const GLchar *label);
 typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
 typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRPROC) (GLenum pname, void **params);
+typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
+typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
 #ifdef GL_GLEXT_PROTOTYPES
+GL_APICALL void GL_APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
+GL_APICALL void GL_APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label);
+GL_APICALL void GL_APIENTRY glPopDebugGroup (void);
+GL_APICALL void GL_APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message);
 GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
 GL_APICALL void GL_APIENTRY glDebugMessageInsertKHR (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
 GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam);
@@ -152,6 +158,8 @@ GL_APICALL void GL_APIENTRY glGetObjectLabelKHR (GLenum identifier, GLuint name,
 GL_APICALL void GL_APIENTRY glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label);
 GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHR (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
 GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, void **params);
+GL_APICALL void GL_APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
+GL_APICALL void GL_APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
 #endif
 #endif /* GL_KHR_debug */
 
index 6f84da3..c4c8dd7 100644 (file)
@@ -1610,18 +1610,21 @@ coregl_api_glProgramUniform1iv(GLuint program, GLint location, GLsizei count, co
        ovr_glProgramUniform1iv(program, location, count, value);
 }
 
+
 void
 coregl_api_glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value)
 {
        ovr_glProgramUniform2iv(program, location, count, value);
 }
 
+
 void
 coregl_api_glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value)
 {
        ovr_glProgramUniform3iv(program, location, count, value);
 }
 
+
 void
 coregl_api_glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value)
 {
@@ -1634,18 +1637,21 @@ coregl_api_glProgramUniform1fv(GLuint program, GLint location, GLsizei count, co
        ovr_glProgramUniform1fv(program, location, count, value);
 }
 
+
 void
 coregl_api_glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
 {
        ovr_glProgramUniform2fv(program, location, count, value);
 }
 
+
 void
 coregl_api_glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
 {
        ovr_glProgramUniform3fv(program, location, count, value);
 }
 
+
 void
 coregl_api_glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
 {
@@ -1658,12 +1664,14 @@ coregl_api_glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei cou
        ovr_glProgramUniformMatrix2fv(program, location, count, transpose, value);
 }
 
+
 void
 coregl_api_glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 {
        ovr_glProgramUniformMatrix3fv(program, location, count, transpose, value);
 }
 
+
 void
 coregl_api_glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 {
@@ -1676,42 +1684,49 @@ coregl_api_glProgramUniform1i(GLuint program, GLint location, GLint x)
        ovr_glProgramUniform1i(program, location, x);
 }
 
+
 void
 coregl_api_glProgramUniform2i(GLuint program, GLint location, GLint x, GLint y)
 {
        ovr_glProgramUniform2i(program, location, x, y);
 }
 
+
 void
 coregl_api_glProgramUniform3i(GLuint program, GLint location, GLint x, GLint y, GLint z)
 {
        ovr_glProgramUniform3i(program, location, x, y, z);
 }
 
+
 void
 coregl_api_glProgramUniform4i(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w)
 {
        ovr_glProgramUniform4i(program, location, x, y, z, w);
 }
 
+
 void
 coregl_api_glProgramUniform1f(GLuint program, GLint location, GLfloat x)
 {
        ovr_glProgramUniform1f(program, location, x);
 }
 
+
 void
 coregl_api_glProgramUniform2f(GLuint program, GLint location, GLfloat x, GLfloat y)
 {
        ovr_glProgramUniform2f(program, location, x, y);
 }
 
+
 void
 coregl_api_glProgramUniform3f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z)
 {
        ovr_glProgramUniform3f(program, location, x, y, z);
 }
 
+
 void
 coregl_api_glProgramUniform4f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
 {
@@ -1748,18 +1763,21 @@ coregl_api_glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, c
        ovr_glProgramUniform1uiv(program, location, count, value);
 }
 
+
 void
 coregl_api_glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
 {
        ovr_glProgramUniform2uiv(program, location, count, value);
 }
 
+
 void
 coregl_api_glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
 {
        ovr_glProgramUniform3uiv(program, location, count, value);
 }
 
+
 void
 coregl_api_glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
 {
@@ -1884,4 +1902,13 @@ void
 coregl_api_glVertexBindingDivisor (GLuint bindingindex, GLuint divisor)
 {
        ovr_glVertexBindingDivisor (bindingindex, divisor);
-}
\ No newline at end of file
+}
+
+void
+coregl_api_glGetPointerv(GLenum pname, GLvoid **params)
+{
+       ovr_glGetPointerv(pname, params);
+}
+
+
+
index f995e08..ef2defa 100644 (file)
@@ -25,7 +25,9 @@ typedef khronos_float_t  GLclampf;
 typedef khronos_int32_t  GLfixed;
 typedef khronos_intptr_t GLintptr;
 typedef khronos_ssize_t  GLsizeiptr;
+typedef khronos_int32_t  GLclampx;
 
+typedef void (GL_APIENTRY  *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
 /* OpenGL ES 3.0 */
 
 typedef unsigned short   GLhalf;
index cac9801..2df8795 100644 (file)
@@ -179,7 +179,99 @@ _COREGL_SYMBOL(void, glVertexAttrib4f, (GLuint index, GLfloat x, GLfloat y, GLfl
 _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, GLuint renderbuffer))
+_COREGL_EXT_SYMBOL(void, glDeleteFramebuffersOES, (GLsizei n, const GLuint* framebuffers))
+_COREGL_EXT_SYMBOL(void, glDeleteRenderbuffersOES, (GLsizei n, const GLuint* renderbuffers))
+_COREGL_EXT_SYMBOL(void, glDepthRangefOES, (GLclampf zNear, GLclampf zFar))
+_COREGL_EXT_SYMBOL(void, glDepthRangexOES, (GLclampx zNear, GLclampx zFar))
+_COREGL_EXT_SYMBOL(void, glFramebufferRenderbufferOES, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer))
+_COREGL_EXT_SYMBOL(void, glFramebufferTexture2DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level))
+_COREGL_EXT_SYMBOL(void, glGenFramebuffersOES, (GLsizei n, GLuint* framebuffers))
+_COREGL_EXT_SYMBOL(void, glGenRenderbuffersOES, (GLsizei n, GLuint* renderbuffers))
+_COREGL_EXT_SYMBOL(void, glGetFramebufferAttachmentParameterivOES, (GLenum target, GLenum attachment, GLenum pname, GLint* params))
+_COREGL_EXT_SYMBOL(void, glFramebufferTexture3DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset))
+_COREGL_EXT_SYMBOL(GLboolean, glIsFramebufferOES, (GLuint framebuffer))
+_COREGL_EXT_SYMBOL(GLboolean, glIsRenderbufferOES, (GLuint renderbuffer))
+_COREGL_EXT_SYMBOL(void, glAlphaFuncxOES,(GLenum func, GLclampx ref))
+_COREGL_EXT_SYMBOL(void, glBlendBarrierKHR, (void))
+_COREGL_EXT_SYMBOL(void, glBlendEquationOES, (GLenum mode))
+_COREGL_EXT_SYMBOL(void, glBlendEquationSeparateOES, (GLenum modeRGB, GLenum modeAlpha))
+_COREGL_EXT_SYMBOL(void, glBlendFuncSeparateOES, (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha))
+_COREGL_EXT_SYMBOL(GLenum, glCheckFramebufferStatusOES, (GLenum target))
+_COREGL_EXT_SYMBOL(void, glClearColorxOES,(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha))
+_COREGL_EXT_SYMBOL(void, glClearDepthfOES,(GLclampf depth))
+_COREGL_EXT_SYMBOL(void, glClearDepthxOES,(GLclampx depth))
+_COREGL_EXT_SYMBOL(void, glClipPlanefOES,(GLenum plane, GLfloat const *equation))
+_COREGL_EXT_SYMBOL(void, glClipPlanexOES,(GLenum plane, GLfixed const *equation))
+_COREGL_EXT_SYMBOL(void, glColor4xOES,(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha))
+_COREGL_EXT_SYMBOL(void, glFogxOES,(GLenum pname, GLfixed param))
+_COREGL_EXT_SYMBOL(void, glFogxvOES,(GLenum pname, GLfixed const *params))
+_COREGL_EXT_SYMBOL(void, glFrustumxOES,(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar))
+_COREGL_EXT_SYMBOL(void, glFrustumfOES,(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar))
+_COREGL_EXT_SYMBOL(void, glGenerateMipmapOES,(GLenum target))
+_COREGL_EXT_SYMBOL(void,glGetClipPlanefOES,(GLenum pname, GLfloat eqn[4]))
+_COREGL_EXT_SYMBOL(void,glGetClipPlanexOES,(GLenum pname, GLfixed eqn[4]))
+_COREGL_EXT_SYMBOL(GLuint,glGetDebugMessageLog,(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog))
+_COREGL_EXT_SYMBOL(void,glGetObjectLabel,(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label))
+_COREGL_EXT_SYMBOL(void,glGetObjectPtrLabel,(void const *ptr, GLsizei bufSize, GLsizei *length, GLchar *label))
+_COREGL_EXT_SYMBOL(void,glGetPointervKHR,(GLenum pname, GLvoid **params))
+_COREGL_EXT_SYMBOL(void, glDebugMessageCallback,(GLDEBUGPROCKHR callback, void const *userParam))
+_COREGL_EXT_SYMBOL(void, glDebugMessageControl,(GLenum source, GLenum type, GLenum severity, GLsizei count, GLuint const *ids, GLboolean enabled))
+_COREGL_EXT_SYMBOL(void, glDebugMessageInsert,(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, GLchar const *buf))
+_COREGL_EXT_SYMBOL(void, glDebugMessageCallbackKHR,(GLDEBUGPROCKHR callback, void const *userParam))
+_COREGL_EXT_SYMBOL(void, glDebugMessageControlKHR,(GLenum source, GLenum type, GLenum severity, GLsizei count, GLuint const *ids, GLboolean enabled))
+_COREGL_EXT_SYMBOL(void, glDebugMessageInsertKHR,(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, GLchar const *buf))
+_COREGL_EXT_SYMBOL(GLuint,glGetDebugMessageLogKHR,(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog))
+_COREGL_EXT_SYMBOL(void,glGetObjectLabelKHR,(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label))
+_COREGL_EXT_SYMBOL(void,glGetObjectPtrLabelKHR,(void const *ptr, GLsizei bufSize, GLsizei *length, GLchar *label))
+_COREGL_EXT_SYMBOL(void, glObjectLabelKHR, (GLenum identifier, GLuint name, GLsizei length, const GLchar *label))
+_COREGL_EXT_SYMBOL(void, glObjectPtrLabelKHR, (const void *ptr, GLsizei length, const GLchar *label))
+_COREGL_EXT_SYMBOL(void, glPopDebugGroupKHR, (void))
+_COREGL_EXT_SYMBOL(void, glPushDebugGroupKHR, (GLenum source, GLuint id, GLsizei length, const GLchar *message))
+_COREGL_EXT_SYMBOL(void,glGetFixedvOES,(GLenum pname, GLfixed *params))
+_COREGL_EXT_SYMBOL(void,glGetLightxvOES,(GLenum light, GLenum pname, GLfixed *params))
+_COREGL_EXT_SYMBOL(void,glGetMaterialxvOES,(GLenum face, GLenum pname, GLfixed *params))
+_COREGL_EXT_SYMBOL(void,glGetRenderbufferParameterivOES,(GLenum target, GLenum pname, GLint *params))
+_COREGL_EXT_SYMBOL(void,glGetTexEnvxvOES,(GLenum env, GLenum pname, GLfixed *params))
+_COREGL_EXT_SYMBOL(void,glGetTexParameterxvOES,(GLenum target, GLenum pname, GLfixed *params))
+_COREGL_EXT_SYMBOL(void, glLightModelxOES, (GLenum pname, GLfixed param))
+_COREGL_EXT_SYMBOL(void, glLightModelxvOES, (GLenum pname, const GLfixed *params))
+_COREGL_EXT_SYMBOL(void, glLightxOES, (GLenum light, GLenum pname, GLfixed param))
+_COREGL_EXT_SYMBOL(void, glLightxvOES, (GLenum light, GLenum pname, const GLfixed *params))
+_COREGL_EXT_SYMBOL(void, glLineWidthxOES, (GLfixed width))
+_COREGL_EXT_SYMBOL(void, glLoadMatrixxOES, (const GLfixed *m))
+_COREGL_EXT_SYMBOL(void, glMaterialxOES, (GLenum face, GLenum pname, GLfixed param))
+_COREGL_EXT_SYMBOL(void, glMaterialxvOES, (GLenum face, GLenum pname, const GLfixed *params))
+_COREGL_EXT_SYMBOL(void, glMultMatrixxOES, (const GLfixed *m))
+_COREGL_EXT_SYMBOL(void, glMultiTexCoord4bOES, (GLenum target, GLbyte s, GLbyte t, GLbyte r, GLbyte q))
+_COREGL_EXT_SYMBOL(void, glMultiTexCoord4xOES, (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q))
+_COREGL_EXT_SYMBOL(void, glNormal3xOES, (GLfixed nx, GLfixed ny, GLfixed nz))
+_COREGL_EXT_SYMBOL(void, glObjectLabel, (GLenum identifier, GLuint name, GLsizei length, const GLchar *label))
+_COREGL_EXT_SYMBOL(void, glObjectPtrLabel, (const void *ptr, GLsizei length, const GLchar *label))
+_COREGL_EXT_SYMBOL(void, glOrthofOES, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar))
+_COREGL_EXT_SYMBOL(void, glOrthoxOES, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar))
+_COREGL_EXT_SYMBOL(void, glPointParameterxOES, (GLenum pname, GLfixed param))
+_COREGL_EXT_SYMBOL(void, glPointParameterxvOES, (GLenum pname, const GLfixed *params))
+_COREGL_EXT_SYMBOL(void, glPointSizexOES, (GLfixed size))
+_COREGL_EXT_SYMBOL(void, glPolygonOffsetxOES, (GLfixed factor, GLfixed units))
+_COREGL_EXT_SYMBOL(void, glPopDebugGroup, (void))
+_COREGL_EXT_SYMBOL(void, glPushDebugGroup, (GLenum source, GLuint id, GLsizei length, const GLchar *message))
+_COREGL_EXT_SYMBOL(void, glQueryCounterEXT, (GLuint id, GLenum target))
+_COREGL_EXT_SYMBOL(void, glRenderbufferStorageOES, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height))
+_COREGL_EXT_SYMBOL(void, glRotatexOES, (GLfixed angle, GLfixed x, GLfixed y, GLfixed z))
+_COREGL_EXT_SYMBOL(void, glSampleCoveragexOES, (GLclampx value, GLboolean invert))
+_COREGL_EXT_SYMBOL(void, glScalexOES, (GLfixed x, GLfixed y, GLfixed z))
+_COREGL_EXT_SYMBOL(void, glTexEnvxOES, (GLenum target, GLenum pname, GLfixed param))
+_COREGL_EXT_SYMBOL(void, glTexEnvxvOES, (GLenum target, GLenum pname, const GLfixed *params))
+_COREGL_EXT_SYMBOL(void, glTexParameterxOES, (GLenum target, GLenum pname, GLfixed param))
+_COREGL_EXT_SYMBOL(void, glTexParameterxvOES, (GLenum target, GLenum pname, const GLfixed *params))
+_COREGL_EXT_SYMBOL(void, glTexStorage2DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height))
+_COREGL_EXT_SYMBOL(void, glTexStorage3DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth))
+_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))
 /* OpenGL ES 3.0 */
 _COREGL_START_API(COREGL_GLAPI_3)
 _COREGL_SYMBOL(void, glReadBuffer, (GLenum mode))
@@ -365,7 +457,9 @@ _COREGL_END_API(COREGL_GLAPI_31)
 _COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_EGL_image", 1.1, -1)
 _COREGL_EXT_SYMBOL(void, glEGLImageTargetTexture2DOES, (GLenum target, GLeglImageOES image))
 _COREGL_EXT_SYMBOL(void, glEGLImageTargetRenderbufferStorageOES, (GLenum target, GLeglImageOES image))
-//_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_EGL_image_external", 1.1, -1)
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_EGL_image_external", 1.1, -1)
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_surfaceless_context", 1.1, -1)
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_fixed_point", 1.1, -1)
 
 _COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_get_program_binary", 2.0, -1)
 _COREGL_EXT_SYMBOL(void, glGetProgramBinaryOES, (GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary))
@@ -408,6 +502,20 @@ _COREGL_EXT_SYMBOL(void, glProgramUniformMatrix4fvEXT, (GLuint program, GLint lo
 _COREGL_EXT_SYMBOL(void, glValidateProgramPipelineEXT, (GLuint pipeline))
 _COREGL_EXT_SYMBOL(void, glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, char *infoLog))
 
+_COREGL_EXT_SYMBOL(void, glGetQueryObjecti64vEXT,(GLuint id, GLenum pname, GLint64 *params))
+_COREGL_EXT_SYMBOL(void, glGetQueryObjectivEXT,(GLuint id, GLenum pname, GLint *params))
+_COREGL_EXT_SYMBOL(void, glGetQueryObjectui64vEXT,(GLuint id, GLenum pname, GLuint64 *params))
+_COREGL_EXT_SYMBOL(void, glGetQueryObjectuivEXT, (GLuint id, GLenum pname, GLuint* params))
+_COREGL_EXT_SYMBOL(void, glGetQueryivEXT, (GLenum target, GLenum pname, GLint* params))
+_COREGL_EXT_SYMBOL(void, glBeginQueryEXT, (GLenum target, GLuint id))
+_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))
@@ -416,25 +524,25 @@ _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, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels))
+_COREGL_EXT_SYMBOL(void, glTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels))
 _COREGL_EXT_SYMBOL(void, glTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels))
 _COREGL_EXT_SYMBOL(void, glCopyTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height))
 _COREGL_EXT_SYMBOL(void, glCompressedTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data))
 _COREGL_EXT_SYMBOL(void, glCompressedTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data))
-_COREGL_EXT_SYMBOL(void, glFramebufferTexture3DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset))
+
 
 _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(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))
 
 _COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ANGLE_framebuffer_multisample", 1.1, -1)
 _COREGL_EXT_SYMBOL(void, glRenderbufferStorageMultisampleANGLE, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
-
+*/
 
 
 /* Fastpath Verified extensions */
@@ -534,6 +642,8 @@ _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)
 
 /* Fastpath Blocked extensions */
 
@@ -547,24 +657,24 @@ _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetnUniformivEXT)
 _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glLabelObjectEXT)
 _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetObjectLabelEXT)
 
-//_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_disjoint_timer_query", 2.0, -1)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGenQueriesEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glDeleteQueriesEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glIsQueryEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glBeginQueryEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glEndQueryEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glQueryCounterEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetQueryivEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetQueryObjectivEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetQueryObjectuivEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetQueryObjecti64vEXT)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetQueryObjectui64vEXT)
-
-//_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_vertex_array_object", 1.1, -1)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glBindVertexArrayOES)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glDeleteVertexArraysOES)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGenVertexArraysOES)
-_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glIsVertexArrayOES)
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_disjoint_timer_query", 2.0, -1)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGenQueriesEXT)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glDeleteQueriesEXT)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glIsQueryEXT)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glBeginQueryEXT)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glEndQueryEXT)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glQueryCounterEXT)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetQueryivEXT)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetQueryObjectivEXT)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetQueryObjectuivEXT)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetQueryObjecti64vEXT)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGetQueryObjectui64vEXT)
+
+_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_vertex_array_object", 1.1, -1)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glBindVertexArrayOES)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glDeleteVertexArraysOES)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glGenVertexArraysOES)
+//_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glIsVertexArrayOES)
 
 //_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_QCOM_alpha_test", 2.0, -1)
 
index b9842c9..0c61c31 100644 (file)
@@ -417,15 +417,51 @@ fastpath_apply_overrides_gl(int enable)
                COREGL_OVERRIDE(fastpath_, glProgramUniformMatrix2fvEXT);
                COREGL_OVERRIDE(fastpath_, glProgramUniformMatrix3fvEXT);
                COREGL_OVERRIDE(fastpath_, glProgramUniformMatrix4fvEXT);
-               COREGL_OVERRIDE(fastpath_, glProgramParameteriEXT);
-               COREGL_OVERRIDE(fastpath_, glProgramParameteriEXT);
-               COREGL_OVERRIDE(fastpath_, glProgramParameteriEXT);
-               COREGL_OVERRIDE(fastpath_, glProgramParameteriEXT);
-               COREGL_OVERRIDE(fastpath_, glProgramParameteriEXT);
 
                COREGL_OVERRIDE(fastpath_, glFramebufferTexture2DMultisampleEXT);
                COREGL_OVERRIDE(fastpath_, glFramebufferTexture3DOES);
 
+               COREGL_OVERRIDE(fastpath_, glBindFramebufferOES);
+               COREGL_OVERRIDE(fastpath_, glBindRenderbufferOES);
+               COREGL_OVERRIDE(fastpath_, glClearBufferfi);
+               COREGL_OVERRIDE(fastpath_, glClearBufferfv);
+               COREGL_OVERRIDE(fastpath_, glClearBufferiv);
+               COREGL_OVERRIDE(fastpath_, glClearBufferuiv);
+               COREGL_OVERRIDE(fastpath_, glDeleteFramebuffersOES);
+               COREGL_OVERRIDE(fastpath_, glDeleteRenderbuffersOES);
+               COREGL_OVERRIDE(fastpath_, glDepthRangefOES);
+               COREGL_OVERRIDE(fastpath_, glDepthRangexOES);
+               COREGL_OVERRIDE(fastpath_, glFramebufferParameteri);
+               COREGL_OVERRIDE(fastpath_, glGetFramebufferParameteriv);
+               COREGL_OVERRIDE(fastpath_, glFramebufferRenderbufferOES);
+               COREGL_OVERRIDE(fastpath_, glFramebufferTexture2DOES);
+               COREGL_OVERRIDE(fastpath_, glGenFramebuffersOES);
+               COREGL_OVERRIDE(fastpath_, glGenRenderbuffersOES);
+               COREGL_OVERRIDE(fastpath_, glGetFramebufferAttachmentParameterivOES);
+               COREGL_OVERRIDE(fastpath_, glGetQueryObjecti64vEXT);
+               COREGL_OVERRIDE(fastpath_, glGetQueryObjectivEXT);
+               COREGL_OVERRIDE(fastpath_, glGetQueryObjectui64vEXT);
+               COREGL_OVERRIDE(fastpath_, glGetQueryObjectuivEXT);
+               COREGL_OVERRIDE(fastpath_, glGetQueryivEXT);
+               COREGL_OVERRIDE(fastpath_, glBeginQueryEXT);
+               COREGL_OVERRIDE(fastpath_, glDeleteQueriesEXT);
+               COREGL_OVERRIDE(fastpath_, glGenQueriesEXT);
+               COREGL_OVERRIDE(fastpath_, glIsFramebufferOES);
+               COREGL_OVERRIDE(fastpath_, glIsQueryEXT);
+               COREGL_OVERRIDE(fastpath_, glIsRenderbufferOES);
+               COREGL_OVERRIDE(fastpath_, glBlendEquationOES);
+               COREGL_OVERRIDE(fastpath_, glBlendEquationSeparateOES);
+               COREGL_OVERRIDE(fastpath_, glBlendFuncSeparateOES);
+               COREGL_OVERRIDE(fastpath_, glPolygonOffsetxOES);
+               COREGL_OVERRIDE(fastpath_, glLineWidthxOES);
+               COREGL_OVERRIDE(fastpath_, glSampleCoveragexOES);
+               COREGL_OVERRIDE(fastpath_, glQueryCounterEXT);
+               COREGL_OVERRIDE(fastpath_, glBindVertexArrayOES);
+               COREGL_OVERRIDE(fastpath_, glDeleteVertexArraysOES);
+               COREGL_OVERRIDE(fastpath_, glGenVertexArraysOES);
+               COREGL_OVERRIDE(fastpath_, glIsVertexArrayOES);
+               COREGL_OVERRIDE(fastpath_, glClearDepthfOES );
+               COREGL_OVERRIDE(fastpath_, glClearDepthxOES );
                /* Start overriding GLES 3.0 */
                if(driver_gl_version >= COREGL_GLAPI_3) {
                        COREGL_OVERRIDE(fastpath_, glReadBuffer);
@@ -1701,18 +1737,27 @@ fastpath_make_context_current(GLGlueContext *oldctx, GLGlueContext *newctx)
                {
                        STATE_COMPARE(gl_framebuffer_binding_read[0])
                        {
-                               CHECK_GL_ERROR(_orig_fastpath_glBindFramebuffer(GL_READ_FRAMEBUFFER, newctx->gl_framebuffer_binding_read[0]))
+                               if(driver_gl_version >=2)
+                                       CHECK_GL_ERROR(_orig_fastpath_glBindFramebuffer(GL_READ_FRAMEBUFFER, newctx->gl_framebuffer_binding_read[0]))
+                               else
+                                       CHECK_GL_ERROR(_orig_fastpath_glBindFramebufferOES(GL_READ_FRAMEBUFFER, newctx->gl_framebuffer_binding_read[0]))
                        }
                        STATE_COMPARE(gl_framebuffer_binding_draw[0])
                        {
-                               CHECK_GL_ERROR(_orig_fastpath_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, newctx->gl_framebuffer_binding_draw[0]))
+                               if(driver_gl_version >=2)
+                                       CHECK_GL_ERROR(_orig_fastpath_glBindFramebuffer(GL_DRAW_FRAMEBUFFER, newctx->gl_framebuffer_binding_draw[0]))
+                               else
+                                       CHECK_GL_ERROR(_orig_fastpath_glBindFramebufferOES(GL_DRAW_FRAMEBUFFER, newctx->gl_framebuffer_binding_draw[0]))
                        }
                }
                else
                {
                        STATE_COMPARE(gl_framebuffer_binding[0])
                        {
-                               CHECK_GL_ERROR(_orig_fastpath_glBindFramebuffer(GL_FRAMEBUFFER, newctx->gl_framebuffer_binding[0]))
+                               if(driver_gl_version >=2)
+                                       CHECK_GL_ERROR(_orig_fastpath_glBindFramebuffer(GL_FRAMEBUFFER, newctx->gl_framebuffer_binding[0]))
+                               else
+                                       CHECK_GL_ERROR(_orig_fastpath_glBindFramebufferOES(GL_FRAMEBUFFER, newctx->gl_framebuffer_binding[0]))
                        }
                }
                STATE_COMPARE(gl_renderbuffer_binding[0])
index 172045e..0fe6928 100644 (file)
@@ -7349,3 +7349,1378 @@ fastpath_glVertexBindingDivisor(GLuint bindingindex, GLuint divisor)
 finish:
        _COREGL_FASTPATH_FUNC_END();
 }
+void
+fastpath_glBindFramebufferOES(GLenum target, GLuint framebuffer)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_FRAMEBUFFER, framebuffer, &real_obj) != 1)
+       {
+               _set_gl_error(GL_OUT_OF_MEMORY);
+               goto finish;
+       }
+
+       if (target == GL_FRAMEBUFFER)
+       {
+               if (current_ctx->gl_framebuffer_binding_read_used == 1)
+               {
+                       CURR_STATE_COMPARE(gl_framebuffer_binding_read, real_obj)
+                       {
+                               IF_GL_SUCCESS(_orig_fastpath_glBindFramebufferOES(target, real_obj))
+                               {
+                                       if (real_obj == 0)
+                                               current_ctx->_bind_flag1 &= (~_BIND_FLAG1_BIT_gl_framebuffer_binding_read);
+                                       else
+                                               current_ctx->_bind_flag1 |= _BIND_FLAG1_BIT_gl_framebuffer_binding_read;
+                                       current_ctx->gl_framebuffer_binding_read[0] = real_obj;
+                               }
+                       }
+                       CURR_STATE_COMPARE(gl_framebuffer_binding_draw, real_obj)
+                       {
+                               IF_GL_SUCCESS(_orig_fastpath_glBindFramebufferOES(target, real_obj))
+                               {
+                                       if (real_obj == 0)
+                                               current_ctx->_bind_flag1 &= (~_BIND_FLAG1_BIT_gl_framebuffer_binding_draw);
+                                       else
+                                               current_ctx->_bind_flag1 |= _BIND_FLAG1_BIT_gl_framebuffer_binding_draw;
+                                       current_ctx->gl_framebuffer_binding_draw[0] = real_obj;
+                               }
+                       }
+               }
+               else
+               {
+                       CURR_STATE_COMPARE(gl_framebuffer_binding, real_obj)
+                       {
+                               IF_GL_SUCCESS(_orig_fastpath_glBindFramebufferOES(target, real_obj))
+                               {
+                                       if (real_obj == 0)
+                                               current_ctx->_bind_flag1 &= (~_BIND_FLAG1_BIT_gl_framebuffer_binding);
+                                       else
+                                               current_ctx->_bind_flag1 |= _BIND_FLAG1_BIT_gl_framebuffer_binding;
+                                       current_ctx->gl_framebuffer_binding[0] = real_obj;
+                               }
+                       }
+               }
+       }
+       else if (target == GL_READ_FRAMEBUFFER && current_ctx->gl_framebuffer_binding_read_used)
+       {
+               CURR_STATE_COMPARE(gl_framebuffer_binding_read, real_obj)
+               {
+                       IF_GL_SUCCESS(_orig_fastpath_glBindFramebufferOES(target, real_obj))
+                       {
+                               if (real_obj == 0)
+                                       current_ctx->_bind_flag1 &= (~_BIND_FLAG1_BIT_gl_framebuffer_binding_read);
+                               else
+                                       current_ctx->_bind_flag1 |= _BIND_FLAG1_BIT_gl_framebuffer_binding_read;
+                               current_ctx->gl_framebuffer_binding_read[0] = real_obj;
+                       }
+               }
+       }
+       else if (target == GL_DRAW_FRAMEBUFFER && current_ctx->gl_framebuffer_binding_draw_used)
+       {
+               CURR_STATE_COMPARE(gl_framebuffer_binding_draw, real_obj)
+               {
+                       IF_GL_SUCCESS(_orig_fastpath_glBindFramebufferOES(target, real_obj))
+                       {
+                               if (real_obj == 0)
+                                       current_ctx->_bind_flag1 &= (~_BIND_FLAG1_BIT_gl_framebuffer_binding_draw);
+                               else
+                                       current_ctx->_bind_flag1 |= _BIND_FLAG1_BIT_gl_framebuffer_binding_draw;
+                               current_ctx->gl_framebuffer_binding_draw[0] = real_obj;
+                       }
+               }
+       }
+       else
+       {
+               _set_gl_error(GL_INVALID_ENUM);
+               goto finish;
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glBindRenderbufferOES(GLenum target, GLuint renderbuffer)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_RENDERBUFFER, renderbuffer, &real_obj) != 1)
+       {
+               _set_gl_error(GL_OUT_OF_MEMORY);
+               goto finish;
+       }
+
+       if (target == GL_RENDERBUFFER)
+       {
+               CURR_STATE_COMPARE(gl_renderbuffer_binding, real_obj)
+               {
+                       IF_GL_SUCCESS(_orig_fastpath_glBindRenderbufferOES(target, real_obj))
+                       {
+                               if (real_obj == 0)
+                                       current_ctx->_bind_flag1 &= (~_BIND_FLAG1_BIT_gl_renderbuffer_binding);
+                               else
+                                       current_ctx->_bind_flag1 |= _BIND_FLAG1_BIT_gl_renderbuffer_binding;
+                               current_ctx->gl_renderbuffer_binding[0] = real_obj;
+                       }
+               }
+       }
+       else
+       {
+               _set_gl_error(GL_INVALID_ENUM);
+               goto finish;
+       }
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+
+void
+fastpath_glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_BUFFER, buffer, &real_obj) != 1)
+       {
+               goto finish;
+       }
+
+       _orig_fastpath_glClearBufferfi(real_obj, drawbuffer, depth, stencil);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glClearBufferfv(GLenum buffer, GLint drawbuffer, GLfloat const *value)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_BUFFER, buffer, &real_obj) != 1)
+       {
+               goto finish;
+       }
+
+       _orig_fastpath_glClearBufferfv(buffer, drawbuffer, value);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glClearBufferiv(GLenum buffer, GLint drawbuffer, GLint const *value)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_BUFFER, buffer, &real_obj) != 1)
+       {
+               goto finish;
+       }
+
+       _orig_fastpath_glClearBufferiv(buffer, drawbuffer, value);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glClearBufferuiv(GLenum buffer, GLint drawbuffer, GLuint const *value)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_BUFFER, buffer, &real_obj) != 1)
+       {
+               goto finish;
+       }
+
+       _orig_fastpath_glClearBufferuiv(buffer, drawbuffer, value);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glDeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers)
+{
+       int i;
+       GLuint *objid_array = NULL;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (n < 0)
+       {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       if (n == 0) goto finish;
+       if (framebuffers == NULL) goto finish;
+
+       AST(current_ctx->ostate.shared != NULL);
+
+       objid_array = (GLuint *)calloc(1, sizeof(GLuint) * n);
+       {
+               int real_n = 0;
+
+               for (i = 0; i < n; i++)
+               {
+                       int real_objid = _COREGL_INT_INIT_VALUE;
+                       if (framebuffers[i] == 0) continue;
+
+                       real_objid = fastpath_ostate_get_object(&current_ctx->ostate, GL_OBJECT_TYPE_FRAMEBUFFER, framebuffers[i]);
+                       if (real_objid == 0) continue;
+
+                       AST(fastpath_ostate_remove_object(&current_ctx->ostate, GL_OBJECT_TYPE_FRAMEBUFFER, framebuffers[i]) == 1);
+                       objid_array[real_n++] = real_objid;
+               }
+
+               IF_GL_SUCCESS(_orig_fastpath_glDeleteFramebuffersOES(real_n, objid_array))
+               {
+                       for (i = 0; i < real_n; i++)
+                       {
+                               General_Trace_List *current = NULL;
+                               current = current_ctx->ostate.shared->using_gctxs;
+
+                               while (current != NULL)
+                               {
+                                       GLGlueContext *cur_gctx = (GLGlueContext *)current->value;
+
+                                       if (cur_gctx->gl_framebuffer_binding[0] == objid_array[i])
+                                       {
+                                               cur_gctx->_bind_flag1 &= (~_BIND_FLAG1_BIT_gl_framebuffer_binding);
+                                               cur_gctx->gl_framebuffer_binding[0] = 0;
+                                       }
+                                       if (cur_gctx->gl_framebuffer_binding_read[0] == objid_array[i])
+                                       {
+                                               cur_gctx->_bind_flag1 &= (~_BIND_FLAG1_BIT_gl_framebuffer_binding_read);
+                                               cur_gctx->gl_framebuffer_binding_read[0] = 0;
+                                       }
+                                       if (cur_gctx->gl_framebuffer_binding_draw[0] == objid_array[i])
+                                       {
+                                               cur_gctx->_bind_flag1 &= (~_BIND_FLAG1_BIT_gl_framebuffer_binding_draw);
+                                               cur_gctx->gl_framebuffer_binding_draw[0] = 0;
+                                       }
+
+                                       current = current->next;
+                               }
+                       }
+               }
+       }
+
+       goto finish;
+
+finish:
+       if (objid_array != NULL)
+       {
+               free(objid_array);
+               objid_array = NULL;
+       }
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glDeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers)
+{
+       int i;
+       GLuint *objid_array = NULL;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (n < 0)
+       {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       if (n == 0) goto finish;
+       if (renderbuffers == NULL) goto finish;
+
+       AST(current_ctx->ostate.shared != NULL);
+
+       objid_array = (GLuint *)calloc(1, sizeof(GLuint) * n);
+       {
+               int real_n = 0;
+
+               for (i = 0; i < n; i++)
+               {
+                       int real_objid = _COREGL_INT_INIT_VALUE;
+                       if (renderbuffers[i] == 0) continue;
+
+                       real_objid = fastpath_ostate_get_object(&current_ctx->ostate, GL_OBJECT_TYPE_RENDERBUFFER, renderbuffers[i]);
+                       if (real_objid == 0) continue;
+
+                       AST(fastpath_ostate_remove_object(&current_ctx->ostate, GL_OBJECT_TYPE_RENDERBUFFER, renderbuffers[i]) == 1);
+                       objid_array[real_n++] = real_objid;
+               }
+
+               IF_GL_SUCCESS(_orig_fastpath_glDeleteRenderbuffersOES(real_n, objid_array))
+               {
+                       for (i = 0; i < real_n; i++)
+                       {
+                               General_Trace_List *current = NULL;
+                               current = current_ctx->ostate.shared->using_gctxs;
+
+                               while (current != NULL)
+                               {
+                                       GLGlueContext *cur_gctx = (GLGlueContext *)current->value;
+
+                                       if (cur_gctx->gl_renderbuffer_binding[0] == objid_array[i])
+                                       {
+                                               cur_gctx->_bind_flag1 &= (~_BIND_FLAG1_BIT_gl_renderbuffer_binding);
+                                               cur_gctx->gl_renderbuffer_binding[0] = 0;
+                                       }
+
+                                       current = current->next;
+                               }
+                       }
+               }
+       }
+
+       goto finish;
+
+finish:
+       if (objid_array != NULL)
+       {
+               free(objid_array);
+               objid_array = NULL;
+       }
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glDepthRangefOES(GLclampf zNear, GLclampf zFar)
+{
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if ((current_ctx->gl_depth_range[0] != zNear) ||
+           (current_ctx->gl_depth_range[1] != zFar))
+       {
+               IF_GL_SUCCESS(_orig_fastpath_glDepthRangefOES(zNear, zFar))
+               {
+                       current_ctx->_clear_flag2 |= _CLEAR_FLAG2_BIT_gl_depth_range;
+                       current_ctx->gl_depth_range[0] = zNear;
+                       current_ctx->gl_depth_range[1] = zFar;
+               }
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glDepthRangexOES(GLclampx zNear, GLclampx zFar)
+{
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if ((current_ctx->gl_depth_range[0] != zNear) ||
+           (current_ctx->gl_depth_range[1] != zFar))
+       {
+               IF_GL_SUCCESS(_orig_fastpath_glDepthRangexOES(zNear, zFar))
+               {
+                       current_ctx->_clear_flag2 |= _CLEAR_FLAG2_BIT_gl_depth_range;
+                       current_ctx->gl_depth_range[0] = zNear;
+                       current_ctx->gl_depth_range[1] = zFar;
+               }
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glFramebufferParameteri(GLenum target, GLenum pname, GLint param)
+{
+       GLint real_obj = 0, fa_type = 0;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       switch (pname)
+       {
+               case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
+                       param = 0;
+                       _orig_fastpath_glFramebufferParameteri(target, pname, real_obj);
+                       _orig_fastpath_glFramebufferParameteri(target, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, fa_type);
+                       switch (fa_type)
+                       {
+                               case GL_TEXTURE:
+                                       if (GET_GLUE_OBJ(GL_OBJECT_TYPE_TEXTURE, real_obj, (GLuint *)&param) != 1)
+                                       {
+                                               param = 0;
+                                               goto finish;
+                                       }
+                                       break;
+                               case GL_RENDERBUFFER:
+                                       if (GET_GLUE_OBJ(GL_OBJECT_TYPE_RENDERBUFFER, real_obj, (GLuint *)&param) != 1)
+                                       {
+                                               param = 0;
+                                               goto finish;
+                                       }
+                                       break;
+                       }
+                       break;
+               default:
+                       _orig_fastpath_glFramebufferParameteri(target, pname, param);
+                       break;
+       }
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params)
+{
+       GLint real_obj = 0, fa_type = 0;;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       switch (pname)
+       {
+               case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
+                       params[0] = 0;
+                       _orig_fastpath_glGetFramebufferParameteriv(target, pname, &real_obj);
+                       _orig_fastpath_glGetFramebufferParameteriv(target, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &fa_type);
+                       switch (fa_type)
+                       {
+                               case GL_TEXTURE:
+                                       if (GET_GLUE_OBJ(GL_OBJECT_TYPE_TEXTURE, real_obj, (GLuint *)params) != 1)
+                                       {
+                                               params[0] = 0;
+                                               goto finish;
+                                       }
+                                       break;
+                               case GL_RENDERBUFFER:
+                                       if (GET_GLUE_OBJ(GL_OBJECT_TYPE_RENDERBUFFER, real_obj, (GLuint *)params) != 1)
+                                       {
+                                               params[0] = 0;
+                                               goto finish;
+                                       }
+                                       break;
+                       }
+                       break;
+               default:
+                       _orig_fastpath_glGetFramebufferParameteriv(target, pname, params);
+                       break;
+       }
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_RENDERBUFFER, renderbuffer, &real_obj) != 1)
+       {
+               _set_gl_error(GL_OUT_OF_MEMORY);
+               goto finish;
+       }
+
+       _orig_fastpath_glFramebufferRenderbufferOES(target, attachment, renderbuffertarget, real_obj);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_TEXTURE, texture, &real_obj) != 1)
+       {
+               _set_gl_error(GL_OUT_OF_MEMORY);
+               goto finish;
+       }
+
+       _orig_fastpath_glFramebufferTexture2DOES(target, attachment, textarget, real_obj, level);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGenFramebuffersOES(GLsizei n, GLuint* framebuffers)
+{
+       int i;
+       GLuint *objid_array = NULL;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (n < 0)
+       {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       if (n == 0) goto finish;
+       if (framebuffers == NULL) goto finish;
+
+       AST(current_ctx->ostate.shared != NULL);
+
+       objid_array = (GLuint *)calloc(1, sizeof(GLuint) * n);
+
+       IF_GL_SUCCESS(_orig_fastpath_glGenFramebuffersOES(n, objid_array))
+       {
+               for (i = 0; i < n; i++)
+               {
+                       framebuffers[i] = fastpath_ostate_create_object(&current_ctx->ostate, GL_OBJECT_TYPE_FRAMEBUFFER, objid_array[i]);
+               }
+       }
+
+       goto finish;
+
+finish:
+       if (objid_array != NULL)
+       {
+               free(objid_array);
+               objid_array = NULL;
+       }
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGenRenderbuffersOES(GLsizei n, GLuint* renderbuffers)
+{
+       int i;
+       GLuint *objid_array = NULL;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (n < 0)
+       {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       if (n == 0) goto finish;
+       if (renderbuffers == NULL) goto finish;
+
+       AST(current_ctx->ostate.shared != NULL);
+
+       objid_array = (GLuint *)calloc(1, sizeof(GLuint) * n);
+
+       IF_GL_SUCCESS(_orig_fastpath_glGenRenderbuffersOES(n, objid_array))
+       {
+               for (i = 0; i < n; i++)
+               {
+                       renderbuffers[i] = fastpath_ostate_create_object(&current_ctx->ostate, GL_OBJECT_TYPE_RENDERBUFFER, objid_array[i]);
+               }
+       }
+
+       goto finish;
+
+finish:
+       if (objid_array != NULL)
+       {
+               free(objid_array);
+               objid_array = NULL;
+       }
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint *params)
+{
+       GLint real_obj, fa_type;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       switch (pname)
+       {
+               case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
+                       params[0] = 0;
+                       _orig_fastpath_glGetFramebufferAttachmentParameterivOES(target, attachment, pname, &real_obj);
+                       _orig_fastpath_glGetFramebufferAttachmentParameterivOES(target, attachment, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &fa_type);
+                       switch (fa_type)
+                       {
+                               case GL_TEXTURE:
+                                       if (GET_GLUE_OBJ(GL_OBJECT_TYPE_TEXTURE, real_obj, (GLuint *)params) != 1)
+                                       {
+                                               params[0] = 0;
+                                               goto finish;
+                                       }
+                                       break;
+                               case GL_RENDERBUFFER:
+                                       if (GET_GLUE_OBJ(GL_OBJECT_TYPE_RENDERBUFFER, real_obj, (GLuint *)params) != 1)
+                                       {
+                                               params[0] = 0;
+                                               goto finish;
+                                       }
+                                       break;
+                       }
+                       break;
+               default:
+                       _orig_fastpath_glGetFramebufferAttachmentParameterivOES(target, attachment, pname, params);
+                       break;
+       }
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64 *params)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_QUERY, id, &real_obj) != 1)
+       {
+               _set_gl_error(GL_INVALID_OPERATION);
+               goto finish;
+       }
+
+       _orig_fastpath_glGetQueryObjecti64vEXT(real_obj, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetQueryObjectivEXT(GLuint id, GLenum pname, GLint *params)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_QUERY, id, &real_obj) != 1)
+       {
+               _set_gl_error(GL_INVALID_OPERATION);
+               goto finish;
+       }
+
+       _orig_fastpath_glGetQueryObjectivEXT(real_obj, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64 *params)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_QUERY, id, &real_obj) != 1)
+       {
+               _set_gl_error(GL_INVALID_OPERATION);
+               goto finish;
+       }
+
+       _orig_fastpath_glGetQueryObjectui64vEXT(real_obj, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_QUERY, id, &real_obj) != 1)
+       {
+               _set_gl_error(GL_INVALID_OPERATION);
+               goto finish;
+       }
+
+       _orig_fastpath_glGetQueryObjectuivEXT(real_obj, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGetQueryivEXT(GLenum target, GLenum pname, GLint* params)
+{
+       GLuint glue_obj_id = _COREGL_INT_INIT_VALUE;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       _orig_fastpath_glGetQueryivEXT(target, pname, params);
+
+       switch (pname)
+       {
+               case GL_CURRENT_QUERY:
+                       if (params[0] != 0)
+                       {
+                               AST(GET_GLUE_OBJ(GL_OBJECT_TYPE_QUERY, params[0], &glue_obj_id) == 1);
+                               params[0] = glue_obj_id;
+                       }
+                       break;
+       }
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glBeginQueryEXT(GLenum target, GLuint id)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_QUERY, id, &real_obj) != 1)
+       {
+               // TODO : Begin - Context Switch
+               _set_gl_error(GL_INVALID_OPERATION);
+               goto finish;
+       }
+
+       _orig_fastpath_glBeginQueryEXT(target, real_obj);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glDeleteQueriesEXT(GLsizei n, const GLuint* ids)
+{
+       int i;
+       GLuint *objid_array = NULL;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (n < 0)
+       {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       if (n == 0) goto finish;
+       if (ids == NULL) goto finish;
+
+       AST(current_ctx->ostate.shared != NULL);
+
+       objid_array = (GLuint *)calloc(1, sizeof(GLuint) * n);
+       {
+               int real_n = 0;
+
+               for (i = 0; i < n; i++)
+               {
+                       int real_objid = _COREGL_INT_INIT_VALUE;
+                       if (ids[i] == 0) continue;
+
+                       real_objid = fastpath_ostate_get_object(&current_ctx->ostate, GL_OBJECT_TYPE_QUERY, ids[i]);
+                       if (real_objid == 0) continue;
+
+                       AST(fastpath_ostate_remove_object(&current_ctx->ostate, GL_OBJECT_TYPE_QUERY, ids[i]) == 1);
+                       objid_array[real_n++] = real_objid;
+               }
+
+               _orig_fastpath_glDeleteQueriesEXT(real_n, objid_array);
+       }
+
+       goto finish;
+
+finish:
+       if (objid_array != NULL)
+       {
+               free(objid_array);
+               objid_array = NULL;
+       }
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGenQueriesEXT(GLsizei n, GLuint* ids)
+{
+       int i;
+       GLuint *objid_array = NULL;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (n < 0)
+       {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       if (n == 0) goto finish;
+       if (ids == NULL) goto finish;
+
+       AST(current_ctx->ostate.shared != NULL);
+
+       objid_array = (GLuint *)calloc(1, sizeof(GLuint) * n);
+
+       IF_GL_SUCCESS(_orig_fastpath_glGenQueriesEXT(n, objid_array))
+       {
+               for (i = 0; i < n; i++)
+               {
+                       ids[i] = fastpath_ostate_create_object(&current_ctx->ostate, GL_OBJECT_TYPE_QUERY, objid_array[i]);
+               }
+       }
+
+       goto finish;
+
+finish:
+       if (objid_array != NULL)
+       {
+               free(objid_array);
+               objid_array = NULL;
+       }
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+GLboolean
+fastpath_glIsFramebufferOES(GLuint framebuffer)
+{
+       GLboolean ret = GL_FALSE;
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_FRAMEBUFFER, framebuffer, &real_obj) != 1)
+       {
+               ret = GL_FALSE;
+               goto finish;
+       }
+
+       ret = _orig_fastpath_glIsFramebufferOES(real_obj);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+       return ret;
+}
+
+GLboolean
+fastpath_glIsQueryEXT(GLuint id)
+{
+       GLboolean ret = GL_FALSE;
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_QUERY, id, &real_obj) != 1)
+       {
+               ret = GL_FALSE;
+               goto finish;
+       }
+
+       ret = _orig_fastpath_glIsQueryEXT(real_obj);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+       return ret;
+}
+
+GLboolean
+fastpath_glIsRenderbufferOES(GLuint renderbuffer)
+{
+       GLboolean ret = GL_FALSE;
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_RENDERBUFFER, renderbuffer, &real_obj) != 1)
+       {
+               ret = GL_FALSE;
+               goto finish;
+       }
+
+       ret = _orig_fastpath_glIsRenderbufferOES(real_obj);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+       return ret;
+}
+
+void
+fastpath_glBlendEquationOES(GLenum mode)
+{
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       IF_GL_SUCCESS(_orig_fastpath_glBlendEquationOES(mode))
+       {
+               current_ctx->_blend_flag |=
+                       _BLEND_FLAG_BIT_gl_blend_equation_rgb |
+                       _BLEND_FLAG_BIT_gl_blend_equation_alpha;
+
+               _orig_fastpath_glGetIntegerv(GL_BLEND_EQUATION_RGB, (GLint*) & (current_ctx->gl_blend_equation_rgb));
+               _orig_fastpath_glGetIntegerv(GL_BLEND_EQUATION_ALPHA, (GLint*) & (current_ctx->gl_blend_equation_alpha));
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+
+void
+fastpath_glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha)
+{
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if ((current_ctx->gl_blend_equation_rgb[0] != modeRGB) ||
+           (current_ctx->gl_blend_equation_alpha[0] != modeAlpha))
+       {
+               IF_GL_SUCCESS(_orig_fastpath_glBlendEquationSeparateOES(modeRGB, modeAlpha))
+               {
+                       current_ctx->_blend_flag |=
+                               _BLEND_FLAG_BIT_gl_blend_equation_rgb |
+                               _BLEND_FLAG_BIT_gl_blend_equation_alpha;
+
+                       current_ctx->gl_blend_equation_rgb[0]    = modeRGB;
+                       current_ctx->gl_blend_equation_alpha[0]  = modeAlpha;
+               }
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glBlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if ((current_ctx->gl_blend_src_rgb[0] != srcRGB) ||
+           (current_ctx->gl_blend_dst_rgb[0] != dstRGB) ||
+           (current_ctx->gl_blend_src_alpha[0] != srcAlpha) ||
+           (current_ctx->gl_blend_dst_alpha[0] != dstAlpha))
+       {
+               IF_GL_SUCCESS(_orig_fastpath_glBlendFuncSeparateOES(srcRGB, dstRGB, srcAlpha, dstAlpha))
+               {
+                       current_ctx->_blend_flag |=
+                       _BLEND_FLAG_BIT_gl_blend_src_rgb |
+                       _BLEND_FLAG_BIT_gl_blend_src_alpha |
+                       _BLEND_FLAG_BIT_gl_blend_dst_rgb |
+                       _BLEND_FLAG_BIT_gl_blend_dst_alpha;
+
+                       current_ctx->gl_blend_src_rgb[0]   = srcRGB;
+                       current_ctx->gl_blend_dst_rgb[0]   = dstRGB;
+                       current_ctx->gl_blend_src_alpha[0] = srcAlpha;
+                       current_ctx->gl_blend_dst_alpha[0] = dstAlpha;
+               }
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glPolygonOffsetxOES(GLfixed factor, GLfixed units)
+{
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if ((current_ctx->gl_polygon_offset_factor[0] != factor) ||
+           (current_ctx->gl_polygon_offset_units[0] != units))
+       {
+               IF_GL_SUCCESS(_orig_fastpath_glPolygonOffsetxOES(factor, units))
+               {
+                       current_ctx->_misc_flag1 |=
+                               _MISC_FLAG1_BIT_gl_polygon_offset_factor |
+                               _MISC_FLAG1_BIT_gl_polygon_offset_units;
+
+                       current_ctx->gl_polygon_offset_factor[0] = factor;
+                       current_ctx->gl_polygon_offset_units[0]  = units;
+               }
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glLineWidthxOES(GLfixed width)
+{
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       CURR_STATE_COMPARE(gl_line_width, width)
+       {
+               IF_GL_SUCCESS(_orig_fastpath_glLineWidthxOES(width))
+               {
+                       current_ctx->_misc_flag1 |= _MISC_FLAG1_BIT_gl_line_width;
+                       current_ctx->gl_line_width[0] = width;
+               }
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glSampleCoveragexOES(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_glSampleCoveragexOES(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_glQueryCounterEXT(GLuint id, GLenum target)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_QUERY, id, &real_obj) != 1)
+       {
+               // TODO : Begin - Context Switch
+               _set_gl_error(GL_INVALID_OPERATION);
+               goto finish;
+       }
+
+       _orig_fastpath_glQueryCounterEXT(real_obj,target);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glGenVertexArraysOES(GLsizei n, GLuint* arrays)
+{
+       int i;
+       GLuint *objid_array = NULL;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (n < 0)
+       {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       if (n == 0) goto finish;
+       if (arrays == NULL) goto finish;
+
+       AST(current_ctx->ostate.shared != NULL);
+
+       objid_array = (GLuint *)calloc(1, sizeof(GLuint) * n);
+
+       IF_GL_SUCCESS(_orig_fastpath_glGenVertexArraysOES(n, objid_array))
+       {
+               for (i = 0; i < n; i++)
+               {
+                       arrays[i] = fastpath_ostate_create_object(&current_ctx->ostate, GL_OBJECT_TYPE_VERTEXARRAY, objid_array[i]);
+               }
+       }
+
+       goto finish;
+
+finish:
+       if (objid_array != NULL)
+       {
+               free(objid_array);
+               objid_array = NULL;
+       }
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+
+void
+fastpath_glBindVertexArrayOES(GLuint array)
+{
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_VERTEXARRAY, array, &real_obj) != 1)
+       {
+               _set_gl_error(GL_INVALID_OPERATION);
+               goto finish;
+       }
+       if (current_ctx->gl_vertex_array_binding[0] != real_obj)
+       {
+               IF_GL_SUCCESS(_orig_fastpath_glBindVertexArrayOES(real_obj))
+               {
+                       current_ctx->_misc_flag3 |= _MISC_FLAG3_BIT_gl_vertex_array_binding;
+                       current_ctx->gl_vertex_array_binding[0] = real_obj;
+               }
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+
+GLboolean
+fastpath_glIsVertexArrayOES(GLuint array)
+{
+       GLboolean ret = GL_FALSE;
+       GLuint real_obj;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (GET_REAL_OBJ(GL_OBJECT_TYPE_VERTEXARRAY, array, &real_obj) != 1)
+       {
+               ret = GL_FALSE;
+               goto finish;
+       }
+
+       ret = _orig_fastpath_glIsVertexArrayOES(real_obj);
+
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+       return ret;
+}
+
+
+void
+fastpath_glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays)
+{
+       int i;
+       GLuint *objid_array = NULL;
+
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       if (n < 0)
+       {
+               _set_gl_error(GL_INVALID_VALUE);
+               goto finish;
+       }
+       if (n == 0) goto finish;
+       if (arrays == NULL) goto finish;
+
+       AST(current_ctx->ostate.shared != NULL);
+
+       objid_array = (GLuint *)calloc(1, sizeof(GLuint) * n);
+       {
+               int real_n = 0;
+
+               for (i = 0; i < n; i++)
+               {
+                       int real_objid = _COREGL_INT_INIT_VALUE;
+                       if (arrays[i] == 0) continue;
+
+                       real_objid = fastpath_ostate_get_object(&current_ctx->ostate, GL_OBJECT_TYPE_VERTEXARRAY, arrays[i]);
+                       if (real_objid == 0) continue;
+
+                       AST(fastpath_ostate_remove_object(&current_ctx->ostate, GL_OBJECT_TYPE_VERTEXARRAY, arrays[i]) == 1);
+                       objid_array[real_n++] = real_objid;
+               }
+
+               IF_GL_SUCCESS(_orig_fastpath_glDeleteVertexArraysOES(real_n, objid_array))
+               {
+                       for (i = 0; i < real_n; i++)
+                       {
+                               General_Trace_List *current = NULL;
+                               current = current_ctx->ostate.shared->using_gctxs;
+
+                               while (current != NULL)
+                               {
+                                       GLGlueContext *cur_gctx = (GLGlueContext *)current->value;
+
+                                       if (cur_gctx->gl_vertex_array_binding[0] == objid_array[i])
+                                               cur_gctx->gl_vertex_array_binding[0] = 0;
+
+                                       current = current->next;
+                               }
+                       }
+               }
+       }
+
+       goto finish;
+
+finish:
+       if (objid_array != NULL)
+       {
+               free(objid_array);
+               objid_array = NULL;
+       }
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glClearDepthfOES(GLclampf depth)
+{
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       CURR_STATE_COMPARE(gl_depth_clear_value, depth)
+       {
+               IF_GL_SUCCESS(_orig_fastpath_glClearDepthfOES(depth))
+               {
+                       current_ctx->_clear_flag2 |= _CLEAR_FLAG2_BIT_gl_depth_clear_value;
+                       current_ctx->gl_depth_clear_value[0] = depth;
+               }
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
+
+void
+fastpath_glClearDepthxOES(GLclampx depth)
+{
+       DEFINE_FASTPAH_GL_FUNC();
+       _COREGL_FASTPATH_FUNC_BEGIN();
+       INIT_FASTPATH_GL_FUNC();
+
+       CURR_STATE_COMPARE(gl_depth_clear_value, depth)
+       {
+               IF_GL_SUCCESS(_orig_fastpath_glClearDepthxOES(depth))
+               {
+                       current_ctx->_clear_flag2 |= _CLEAR_FLAG2_BIT_gl_depth_clear_value;
+                       current_ctx->gl_depth_clear_value[0] = depth;
+               }
+       }
+       goto finish;
+
+finish:
+       _COREGL_FASTPATH_FUNC_END();
+}
index 6b2125e..563088b 100644 (file)
@@ -1184,6 +1184,7 @@ _dump_surface(int force_output, int type, const char *position, Surface_Data *sd
        png_struct *png = NULL;
        png_info *info = NULL;
        png_byte **rows = NULL;
+       GLenum ret_value = _COREGL_INT_INIT_VALUE;
 
        if (!png_lib_handle)
        {
@@ -1308,7 +1309,11 @@ _dump_surface(int force_output, int type, const char *position, Surface_Data *sd
                        _orig_tracepath_glGetIntegerv(GL_FRAMEBUFFER_BINDING, &oldfb);
                        _orig_tracepath_glBindFramebuffer(GL_FRAMEBUFFER, sdata->fbo);
 
-                       if (_orig_tracepath_glCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE)
+                       if(driver_gl_version >=2)
+                               ret_value = _orig_tracepath_glCheckFramebufferStatus(GL_FRAMEBUFFER);
+                       else
+                               ret_value = _orig_tracepath_glCheckFramebufferStatusOES(GL_FRAMEBUFFER);
+                       if (ret_value == GL_FRAMEBUFFER_COMPLETE)
                        {
                                _orig_tracepath_glBindFramebuffer(GL_FRAMEBUFFER, oldfb);
                                width = sdata->tex_w;
@@ -1348,10 +1353,16 @@ _dump_surface(int force_output, int type, const char *position, Surface_Data *sd
 
                                _orig_tracepath_glBindFramebuffer(GL_FRAMEBUFFER, sdata->fbo);
                                int atttype = _COREGL_INT_INIT_VALUE;
-                          _orig_tracepath_glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &atttype);
+                               if(driver_gl_version >=2)
+                                       _orig_tracepath_glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &atttype);
+                               else
+                                       _orig_tracepath_glGetFramebufferAttachmentParameterivOES(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &atttype);
                                AST(atttype != sdata->tex);
                                int attname = _COREGL_INT_INIT_VALUE;
-                          _orig_tracepath_glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &attname);
+                               if(driver_gl_version >=2)
+                                       _orig_tracepath_glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &attname);
+                               else
+                                       _orig_tracepath_glGetFramebufferAttachmentParameterivOES(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &attname);
                                switch (atttype)
                                {
                                        case GL_TEXTURE:
index 8b9b0c8..cffb3c2 100644 (file)
@@ -2370,7 +2370,7 @@ finish:
 }
 
 void
-tracepath_glTexImage3DOES(GLenum target, GLint level, GLint GLinternalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
+tracepath_glTexImage3DOES(GLenum target, GLint level, GLenum GLinternalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
 {
        _COREGL_TRACEPATH_FUNC_BEGIN();
        _orig_tracepath_glTexImage3DOES(target, level, GLinternalFormat, width, height, depth, border, format, type, pixels);
@@ -4350,7 +4350,7 @@ tracepath_glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum tex
 finish:
        _COREGL_TRACEPATH_FUNC_END();
 }
-
+/*
 void
 tracepath_glBlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
 {
@@ -4454,6 +4454,7 @@ finish:
        }
 #endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
 }
+*/
 
 
 void
@@ -5324,4 +5325,1339 @@ void tracepath_glVertexBindingDivisor (GLuint bindingindex, GLuint divisor)
 
 finish:
        _COREGL_TRACEPATH_FUNC_END();
-}
\ No newline at end of file
+}
+void
+tracepath_glBindFramebufferOES(GLenum target, GLuint framebuffer)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+
+#ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
+       if (unlikely(trace_surface_flag == 1))
+       {
+               GLint oldfb;
+               _orig_tracepath_glGetIntegerv(GL_FRAMEBUFFER_BINDING, &oldfb);
+               if (oldfb != 0)
+               {
+                       _COREGL_TRACE_SURFACE(0, 2, "GLBINDFBO");
+               }
+
+               tracepath_fbdump_update(0);
+       }
+#endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
+
+       _orig_tracepath_glBindFramebufferOES(target, framebuffer);
+
+#ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
+       if (unlikely(trace_surface_flag == 1))
+       {
+               tracepath_fbdump_update(1);
+       }
+#endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glBindRenderbufferOES(GLenum target, GLuint renderbuffer)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glBindRenderbufferOES(target, renderbuffer);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glDeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+
+#ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
+       tracepath_fbdump_update(0);
+#endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
+
+       _orig_tracepath_glDeleteFramebuffersOES(n, framebuffers);
+
+#ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
+       tracepath_fbdump_update(1);
+#endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glDeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+
+#ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
+       tracepath_fbdump_update(0);
+#endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
+
+       _orig_tracepath_glDeleteRenderbuffersOES(n, renderbuffers);
+
+#ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
+       tracepath_fbdump_update(1);
+#endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+#ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
+       if (trace_mem_flag == 1)
+       {
+               MY_MODULE_TSTATE *tstate = NULL;
+
+               GET_MY_TSTATE(tstate, get_current_thread_state());
+               AST(tstate != NULL);
+               if (tstate->ctx != NULL)
+               {
+                       for (int i = 0; i < n; i++)
+                       {
+                               if (renderbuffers[i] == 0) continue;
+                               _remove_glbuf_object(tstate->ctx->sostate->glbuf_rb, renderbuffers[i], "Renderbuffer");
+                       }
+               }
+       }
+#endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
+}
+
+void
+tracepath_glDepthRangefOES(GLclampf zNear, GLclampf zFar)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glDepthRangefOES(zNear, zFar);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glDepthRangexOES(GLclampx zNear, GLclampx zFar)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glDepthRangexOES(zNear, zFar);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+
+#ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
+       tracepath_fbdump_update(0);
+#endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
+
+       _orig_tracepath_glFramebufferRenderbufferOES(target, attachment, renderbuffertarget, renderbuffer);
+
+#ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
+       tracepath_fbdump_update(1);
+#endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+
+#ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
+       tracepath_fbdump_update(0);
+#endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
+
+       _orig_tracepath_glFramebufferTexture2DOES(target, attachment, textarget, texture, level);
+
+#ifdef COREGL_TRACEPATH_TRACE_SURFACE_INFO
+       tracepath_fbdump_update(1);
+#endif // COREGL_TRACEPATH_TRACE_SURFACE_INFO
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glGenFramebuffersOES(GLsizei n, GLuint* framebuffers)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGenFramebuffersOES(n, framebuffers);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glGenRenderbuffersOES(GLsizei n, GLuint* renderbuffers)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGenRenderbuffersOES(n, renderbuffers);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+#ifdef COREGL_TRACEPATH_TRACE_MEMUSE_INFO
+       if (trace_mem_flag == 1)
+       {
+               MY_MODULE_TSTATE *tstate = NULL;
+
+               GET_MY_TSTATE(tstate, get_current_thread_state());
+               AST(tstate != NULL);
+               if (tstate->ctx != NULL)
+               {
+                       for (int i = 0; i < n; i++)
+                       {
+                               if (renderbuffers[i] == 0) continue;
+                               _add_glbuf_object(tstate->ctx->sostate->glbuf_rb, renderbuffers[i], "Renderbuffer", 0, 0, 0, "Unknown");
+                       }
+               }
+       }
+#endif // COREGL_TRACEPATH_TRACE_MEMUSE_INFO
+}
+
+void
+tracepath_glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetFramebufferAttachmentParameterivOES(target, attachment, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64 *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetQueryObjecti64vEXT(id, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glGetQueryObjectivEXT(GLuint id, GLenum pname, GLint *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetQueryObjectivEXT(id, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64 *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetQueryObjectui64vEXT(id, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetQueryObjectuivEXT(id, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glGetQueryivEXT(GLenum target, GLenum pname, GLint* params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetQueryivEXT(target, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glBeginQueryEXT(GLenum target, GLuint id)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glBeginQueryEXT(target, id);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+
+void
+tracepath_glDeleteQueriesEXT(GLsizei n, const GLuint* ids)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glDeleteQueriesEXT(n, ids);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glGenQueriesEXT(GLsizei n, GLuint* ids)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGenQueriesEXT(n, ids);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+GLboolean
+tracepath_glIsFramebufferOES(GLuint framebuffer)
+{
+       GLboolean ret = GL_FALSE;
+
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       ret = _orig_tracepath_glIsFramebufferOES(framebuffer);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+       return ret;
+}
+
+GLboolean
+tracepath_glIsQueryEXT(GLuint id)
+{
+       GLboolean ret = GL_FALSE;
+
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       ret = _orig_tracepath_glIsQueryEXT(id);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+       return ret;
+}
+
+GLboolean
+tracepath_glIsRenderbufferOES(GLuint renderbuffer)
+{
+       GLboolean ret;
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       ret = _orig_tracepath_glIsRenderbufferOES(renderbuffer);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+       return ret;
+}
+
+void
+tracepath_glEndQueryEXT(GLenum target)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glEndQueryEXT(target);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glAlphaFuncxOES(GLenum func, GLclampx ref)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glAlphaFuncxOES(func, ref);
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glBlendBarrierKHR()
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glBlendBarrierKHR();
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glBlendEquationOES(GLenum mode)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glBlendEquationOES(mode);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glBlendEquationSeparateOES(modeRGB, modeAlpha);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glBlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glBlendFuncSeparateOES(srcRGB, dstRGB, srcAlpha, dstAlpha);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+GLenum tracepath_glCheckFramebufferStatusOES(GLenum target)
+{
+       GLenum ret = _COREGL_INT_INIT_VALUE;
+
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       ret = _orig_tracepath_glCheckFramebufferStatusOES(target);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+   return ret;
+}
+
+
+void tracepath_glClearColorxOES(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glClearColorxOES(red, green, blue, alpha);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glClearDepthfOES(GLclampf depth)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glClearDepthfOES(depth);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glClearDepthxOES(GLclampx depth)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glClearDepthxOES(depth);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glClipPlanefOES(GLenum plane, GLfloat const *equation)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glClipPlanefOES(plane, equation);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+
+void tracepath_glClipPlanexOES(GLenum plane, GLfixed const *equation)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glClipPlanexOES(plane, equation);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glColor4xOES(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glColor4xOES(red, green, blue, alpha);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glDebugMessageCallback(GLDEBUGPROCKHR callback, void const *userParam)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glDebugMessageCallback(callback, userParam);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, GLchar const *buf)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glDebugMessageInsert(source, type, id, severity, length, buf);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, GLuint const *ids, GLboolean enabled)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glDebugMessageControl(source, type, severity, count, ids,  enabled);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glFogxOES(GLenum pname, GLfixed param)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glFogxOES(pname, param);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glFogxvOES(GLenum pname, GLfixed const *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glFogxvOES(pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glFrustumxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glFrustumxOES(left, right, bottom, top, zNear, zFar);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glFrustumfOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glFrustumfOES(left, right, bottom, top, zNear, zFar);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGenerateMipmapOES(GLenum target)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGenerateMipmapOES(target);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetClipPlanefOES(GLenum pname, GLfloat eqn[4])
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetClipPlanefOES(pname, eqn);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetClipPlanexOES(GLenum pname, GLfixed eqn[4])
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetClipPlanexOES(pname, eqn);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+GLuint tracepath_glGetDebugMessageLog(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)
+{
+       GLuint ret = GL_INVALID_INDEX;
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       ret =  _orig_tracepath_glGetDebugMessageLog(count, bufsize, sources, types, ids, severities, lengths, messageLog);
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+       return ret;
+}
+
+void tracepath_glGetFixedvOES(GLenum pname, GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetFixedvOES(pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetLightxvOES(GLenum light, GLenum pname, GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetLightxvOES(light, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetMaterialxvOES(GLenum face, GLenum pname, GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetMaterialxvOES(face, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetObjectLabel(identifier, name, bufSize, length, label);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetObjectPtrLabel(void const *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetObjectPtrLabel(ptr, bufSize, length, label);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetPointervKHR(GLenum pname, GLvoid **params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetPointervKHR(pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetRenderbufferParameterivOES(target, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetTexEnvxvOES(GLenum env, GLenum pname, GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetTexEnvxvOES(env, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetTexParameterxvOES(GLenum target, GLenum pname, GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetTexParameterxvOES(target, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+
+void
+tracepath_glLightModelxOES (GLenum pname, GLfixed param)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glLightModelxOES (pname, param);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+
+void
+tracepath_glLightModelxvOES (GLenum pname, const GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glLightModelxvOES (pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+
+void
+tracepath_glLightxOES (GLenum light, GLenum pname, GLfixed param)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glLightxOES (light, pname, param);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+
+void
+tracepath_glLightxvOES (GLenum light, GLenum pname, const GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glLightxvOES (light, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glLineWidthxOES (GLfixed width)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glLineWidthxOES (width);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glLoadMatrixxOES (const GLfixed *m)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glLoadMatrixxOES (m);
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glMaterialxOES (GLenum face, GLenum pname, GLfixed param)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glMaterialxOES (face, pname, param);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glMaterialxvOES (face, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glMultMatrixxOES (const GLfixed *m)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glMultMatrixxOES (m);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glMultiTexCoord4bOES (GLenum target, GLbyte s, GLbyte t, GLbyte r, GLbyte q)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glMultiTexCoord4bOES (target, s, t, r, q);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glMultiTexCoord4xOES (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glMultiTexCoord4xOES (target, s, t, r, q);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glNormal3xOES (nx, ny, nz);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glObjectLabel (identifier, name, length, label);
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glObjectPtrLabel (ptr, length, label);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glOrthofOES (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glOrthofOES (left, right, bottom, top, zNear, zFar);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glOrthoxOES (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glOrthoxOES (left, right, bottom, top, zNear, zFar);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glPointParameterxOES (GLenum pname, GLfixed param)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glPointParameterxOES (pname, param);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glPointParameterxvOES (GLenum pname, const GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glPointParameterxvOES (pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glPointSizexOES (GLfixed size)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glPointSizexOES (size);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glPolygonOffsetxOES (GLfixed factor, GLfixed units)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glPolygonOffsetxOES (factor, units);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glPopDebugGroup (void)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glPopDebugGroup ();
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glPushDebugGroup (source, id, length, message);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glQueryCounterEXT (GLuint id, GLenum target)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glQueryCounterEXT (id, target);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glRenderbufferStorageOES (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glRenderbufferStorageOES (target, internalformat, width, height);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glRotatexOES (angle, x, y, z);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glSampleCoveragexOES (GLclampx value, GLboolean invert)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glSampleCoveragexOES (value, invert);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glScalexOES (GLfixed x, GLfixed y, GLfixed z)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glScalexOES (x, y, z);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glTexEnvxOES (GLenum target, GLenum pname, GLfixed param)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glTexEnvxOES (target, pname, param);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glTexEnvxvOES (target, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glTexParameterxOES (GLenum target, GLenum pname, GLfixed param)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glTexParameterxOES (target, pname, param);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glTexParameterxvOES (target, pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glTexStorage2DEXT (target, levels, internalformat, width, height);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glTexStorage3DEXT (target, levels, internalformat, width, height, depth);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glTexStorage3DMultisampleOES (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glTexStorage3DMultisampleOES (target, samples, internalformat, width, height, depth, fixedsamplelocations);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glTranslatexOES (GLfixed x, GLfixed y, GLfixed z)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glTranslatexOES (x, y, z);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glBindVertexArrayOES(GLuint array)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glBindVertexArrayOES(array);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glDeleteVertexArraysOES(n, arrays);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glGenVertexArraysOES(GLsizei n, GLuint* arrays)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGenVertexArraysOES(n, arrays);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+GLboolean
+tracepath_glIsVertexArrayOES(GLuint array)
+{
+       GLboolean ret = GL_FALSE;
+
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       ret = _orig_tracepath_glIsVertexArrayOES(array);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+       return ret;
+}
+
+void tracepath_glDebugMessageCallbackKHR(GLDEBUGPROCKHR callback, void const *userParam)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glDebugMessageCallbackKHR(callback, userParam);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+
+void tracepath_glDebugMessageControlKHR(GLenum source, GLenum type, GLenum severity, GLsizei count, GLuint const *ids, GLboolean enabled)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glDebugMessageControlKHR(source, type, severity, count, ids,  enabled);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glDebugMessageInsertKHR(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, GLchar const *buf)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glDebugMessageInsertKHR(source, type, id, severity, length, buf);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+GLuint tracepath_glGetDebugMessageLogKHR(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)
+{
+       GLuint ret = GL_INVALID_INDEX;
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       ret =  _orig_tracepath_glGetDebugMessageLogKHR(count, bufsize, sources, types, ids, severities, lengths, messageLog);
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+       return ret;
+}
+
+void tracepath_glGetObjectLabelKHR(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetObjectLabelKHR(identifier, name, bufSize, length, label);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void tracepath_glGetObjectPtrLabelKHR(void const *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetObjectPtrLabelKHR(ptr, bufSize, length, label);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glGetPointerv(GLenum pname, GLvoid **params)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glGetPointerv(pname, params);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glObjectLabelKHR (identifier, name, length, label);
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glObjectPtrLabelKHR (ptr, length, label);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glPopDebugGroupKHR (void)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glPopDebugGroupKHR ();
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
+void
+tracepath_glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message)
+{
+       _COREGL_TRACEPATH_FUNC_BEGIN();
+       _orig_tracepath_glPushDebugGroupKHR (source, id, length, message);
+
+       goto finish;
+
+finish:
+       _COREGL_TRACEPATH_FUNC_END();
+}
+
index 365601a..957fa56 100644 (file)
@@ -1663,42 +1663,50 @@ glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *
        ovr_glProgramUniform1iv(program, location, count, value);
 }
 
+
 void
 glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value)
 {
        ovr_glProgramUniform2iv(program, location, count, value);
 }
 
+
 void
 glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value)
 {
        ovr_glProgramUniform3iv(program, location, count, value);
 }
 
+
 void
 glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value)
 {
        ovr_glProgramUniform4iv(program, location, count, value);
 }
 
+
+
 void
 glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
 {
        ovr_glProgramUniform1fv(program, location, count, value);
 }
 
+
 void
 glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
 {
        ovr_glProgramUniform2fv(program, location, count, value);
 }
 
+
 void
 glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
 {
        ovr_glProgramUniform3fv(program, location, count, value);
 }
 
+
 void
 glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
 {
@@ -1711,12 +1719,14 @@ glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboole
        ovr_glProgramUniformMatrix2fv(program, location, count, transpose, value);
 }
 
+
 void
 glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 {
        ovr_glProgramUniformMatrix3fv(program, location, count, transpose, value);
 }
 
+
 void
 glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 {
@@ -1729,42 +1739,49 @@ glProgramUniform1i(GLuint program, GLint location, GLint x)
        ovr_glProgramUniform1i(program, location, x);
 }
 
+
 void
 glProgramUniform2i(GLuint program, GLint location, GLint x, GLint y)
 {
        ovr_glProgramUniform2i(program, location, x, y);
 }
 
+
 void
 glProgramUniform3i(GLuint program, GLint location, GLint x, GLint y, GLint z)
 {
        ovr_glProgramUniform3i(program, location, x, y, z);
 }
 
+
 void
 glProgramUniform4i(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w)
 {
        ovr_glProgramUniform4i(program, location, x, y, z, w);
 }
 
+
 void
 glProgramUniform1f(GLuint program, GLint location, GLfloat x)
 {
        ovr_glProgramUniform1f(program, location, x);
 }
 
+
 void
 glProgramUniform2f(GLuint program, GLint location, GLfloat x, GLfloat y)
 {
        ovr_glProgramUniform2f(program, location, x, y);
 }
 
+
 void
 glProgramUniform3f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z)
 {
        ovr_glProgramUniform3f(program, location, x, y, z);
 }
 
+
 void
 glProgramUniform4f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
 {
@@ -1777,18 +1794,21 @@ glProgramUniform1ui(GLuint program, GLint location, GLuint x)
        ovr_glProgramUniform1ui(program, location, x);
 }
 
+
 void
 glProgramUniform2ui(GLuint program, GLint location, GLuint x, GLuint y)
 {
        ovr_glProgramUniform2ui(program, location, x, y);
 }
 
+
 void
 glProgramUniform3ui(GLuint program, GLint location, GLuint x, GLuint y, GLuint z)
 {
        ovr_glProgramUniform3ui(program, location, x, y, z);
 }
 
+
 void
 glProgramUniform4ui(GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w)
 {
@@ -1801,6 +1821,7 @@ glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint
        ovr_glProgramUniform1uiv(program, location, count, value);
 }
 
+
 void
 glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
 {
@@ -1825,12 +1846,14 @@ glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboo
        ovr_glProgramUniformMatrix2x3fv(program, location, count, transpose, value);
 }
 
+
 void
 glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 {
        ovr_glProgramUniformMatrix3x2fv(program, location, count, transpose, value);
 }
 
+
 void
 glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 {
@@ -1843,98 +1866,122 @@ glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboo
        ovr_glProgramUniformMatrix3x4fv(program, location, count, transpose, value);
 }
 
+
 void
 glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 {
        ovr_glProgramUniformMatrix2x4fv(program, location, count, transpose, value);
 }
 
+
 void
 glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
 {
        ovr_glProgramUniformMatrix4x2fv(program, location, count, transpose, value);
 }
 
+
 void
 glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
 {
        ovr_glBindImageTexture (unit, texture, level, layered, layer, access, format);
 }
 
+
 void
 glGetBooleani_v (GLenum target, GLuint index, GLboolean *data)
 {
        ovr_glGetBooleani_v (target, index, data);
 }
 
+
 void
 glMemoryBarrier (GLbitfield barriers)
 {
        ovr_glMemoryBarrier (barriers);
 }
 
+
 void
 glMemoryBarrierByRegion (GLbitfield barriers)
 {
        ovr_glMemoryBarrierByRegion (barriers);
 }
 
+
 void
 glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
 {
        ovr_glTexStorage2DMultisample (target, samples, internalformat, width, height, fixedsamplelocations);
 }
 
+
 void
 glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val)
 {
        ovr_glGetMultisamplefv (pname, index, val);
 }
 
+
 void
 glSampleMaski (GLuint maskNumber, GLbitfield mask)
 {
        ovr_glSampleMaski (maskNumber, mask);
 }
 
+
 void
 glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params)
 {
        ovr_glGetTexLevelParameteriv (target, level, pname, params);
 }
 
+
 void
 glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params)
 {
        ovr_glGetTexLevelParameterfv (target, level, pname, params);
 }
 
+
 void
 glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
 {
        ovr_glBindVertexBuffer (bindingindex, buffer, offset, stride);
 }
 
+
 void
 glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
 {
        ovr_glVertexAttribFormat (attribindex, size, type, normalized, relativeoffset);
 }
 
+
 void
 glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
 {
        ovr_glVertexAttribIFormat (attribindex, size, type, relativeoffset);
 }
 
+
 void
 glVertexAttribBinding (GLuint attribindex, GLuint bindingindex)
 {
        ovr_glVertexAttribBinding (attribindex, bindingindex);
 }
 
+
 void
 glVertexBindingDivisor (GLuint bindingindex, GLuint divisor)
 {
        ovr_glVertexBindingDivisor (bindingindex, divisor);
 }
+
+void
+glGetPointerv(GLenum pname, GLvoid **params)
+{
+       ovr_glGetPointerv(pname, params);
+}
+
+