From: xing.huang Date: Thu, 26 Nov 2015 07:02:29 +0000 (+0800) Subject: 1.add fastpath APIs for OpenGLES_DDK X-Git-Tag: accepted/tizen/wearable/20160307.020705~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e10b3590be99bad4a58637e0b3c2e7fdf22ce620;p=platform%2Fcore%2Fuifw%2Fcoregl.git 1.add fastpath APIs for OpenGLES_DDK 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 --- diff --git a/include_KHR/GLES/glext.h b/include_KHR/GLES/glext.h index 0373451..6d6f375 100644 --- a/include_KHR/GLES/glext.h +++ b/include_KHR/GLES/glext.h @@ -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 */ diff --git a/include_KHR/GLES2/gl2ext.h b/include_KHR/GLES2/gl2ext.h index e004151..bcd0a8f 100644 --- a/include_KHR/GLES2/gl2ext.h +++ b/include_KHR/GLES2/gl2ext.h @@ -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 */ diff --git a/src/coregl_export_gl.c b/src/coregl_export_gl.c index 6f84da3..c4c8dd7 100644 --- a/src/coregl_export_gl.c +++ b/src/coregl_export_gl.c @@ -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); +} + + + diff --git a/src/headers/gl.h b/src/headers/gl.h index f995e08..ef2defa 100644 --- a/src/headers/gl.h +++ b/src/headers/gl.h @@ -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; diff --git a/src/headers/sym_gl.h b/src/headers/sym_gl.h index cac9801..2df8795 100644 --- a/src/headers/sym_gl.h +++ b/src/headers/sym_gl.h @@ -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) diff --git a/src/modules/fastpath/coregl_fastpath.c b/src/modules/fastpath/coregl_fastpath.c index b9842c9..0c61c31 100644 --- a/src/modules/fastpath/coregl_fastpath.c +++ b/src/modules/fastpath/coregl_fastpath.c @@ -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]) diff --git a/src/modules/fastpath/coregl_fastpath_gl.c b/src/modules/fastpath/coregl_fastpath_gl.c index 172045e..0fe6928 100644 --- a/src/modules/fastpath/coregl_fastpath_gl.c +++ b/src/modules/fastpath/coregl_fastpath_gl.c @@ -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(¤t_ctx->ostate, GL_OBJECT_TYPE_FRAMEBUFFER, framebuffers[i]); + if (real_objid == 0) continue; + + AST(fastpath_ostate_remove_object(¤t_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(¤t_ctx->ostate, GL_OBJECT_TYPE_RENDERBUFFER, renderbuffers[i]); + if (real_objid == 0) continue; + + AST(fastpath_ostate_remove_object(¤t_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 *)¶m) != 1) + { + param = 0; + goto finish; + } + break; + case GL_RENDERBUFFER: + if (GET_GLUE_OBJ(GL_OBJECT_TYPE_RENDERBUFFER, real_obj, (GLuint *)¶m) != 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(¤t_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(¤t_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(¤t_ctx->ostate, GL_OBJECT_TYPE_QUERY, ids[i]); + if (real_objid == 0) continue; + + AST(fastpath_ostate_remove_object(¤t_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(¤t_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(¤t_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(¤t_ctx->ostate, GL_OBJECT_TYPE_VERTEXARRAY, arrays[i]); + if (real_objid == 0) continue; + + AST(fastpath_ostate_remove_object(¤t_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(); +} diff --git a/src/modules/tracepath/coregl_tracepath.c b/src/modules/tracepath/coregl_tracepath.c index 6b2125e..563088b 100644 --- a/src/modules/tracepath/coregl_tracepath.c +++ b/src/modules/tracepath/coregl_tracepath.c @@ -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: diff --git a/src/modules/tracepath/coregl_tracepath_gl.c b/src/modules/tracepath/coregl_tracepath_gl.c index 8b9b0c8..cffb3c2 100644 --- a/src/modules/tracepath/coregl_tracepath_gl.c +++ b/src/modules/tracepath/coregl_tracepath_gl.c @@ -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(); +} + diff --git a/src/wraps/coregl_gl.c b/src/wraps/coregl_gl.c index 365601a..957fa56 100644 --- a/src/wraps/coregl_gl.c +++ b/src/wraps/coregl_gl.c @@ -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); +} + +