2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
20 * @brief This is the implementation file for OpenGL ES 1.X.
25 #define FGRAPHICS_INTERNAL_USE_DYNAMIC_LOADING
26 #if defined(FGRAPHICS_INTERNAL_USE_DYNAMIC_LOADING)
36 #include <GLES/glext.h>
38 #if defined(FGRAPHICS_INTERNAL_USE_DYNAMIC_LOADING)
39 #include <FBaseSysLog.h>
42 #define FGRAPHICS_INTERNAL_USE_FBO
43 #if defined(FGRAPHICS_INTERNAL_USE_FBO)
44 #include <FUiCtrlFrame.h>
47 using namespace Tizen::Base;
48 using namespace Tizen::Ui;
49 using namespace Tizen::Ui::Controls;
51 namespace Tizen { namespace Graphics
57 #if !defined(FGRAPHICS_INTERNAL_USE_DYNAMIC_LOADING)
65 _GlAlphaFunc_1(GLenum func, GLclampf ref)
67 glAlphaFunc(func, ref);
71 _GlClearColor_1(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
73 glClearColor(red, green, blue, alpha);
77 _GlClearDepthf_1(GLclampf depth)
83 _GlClipPlanef_1(GLenum plane, const GLfloat* pEquation)
85 glClipPlanef(plane, pEquation);
89 _GlColor4f_1(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
91 glColor4f(red, green, blue, alpha);
95 _GlDepthRangef_1(GLclampf zNear, GLclampf zFar)
97 glDepthRangef(zNear, zFar);
101 _GlFogf_1(GLenum pname, GLfloat param)
103 glFogf(pname, param);
107 _GlFogfv_1(GLenum pname, const GLfloat* pParams)
109 glFogfv(pname, pParams);
113 _GlFrustumf_1(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
115 glFrustumf(left, right, bottom, top, zNear, zFar);
119 _GlGetClipPlanef_1(GLenum pname, GLfloat eqn[4])
121 glGetClipPlanef(pname, eqn);
125 _GlGetFloatv_1(GLenum pname, GLfloat* pParams)
127 glGetFloatv(pname, pParams);
131 _GlGetLightfv_1(GLenum light, GLenum pname, GLfloat* pParams)
133 glGetLightfv(light, pname, pParams);
137 _GlGetMaterialfv_1(GLenum face, GLenum pname, GLfloat* pParams)
139 glGetMaterialfv(face, pname, pParams);
143 _GlGetTexEnvfv_1(GLenum env, GLenum pname, GLfloat* pParams)
145 glGetTexEnvfv(env, pname, pParams);
149 _GlGetTexParameterfv_1(GLenum target, GLenum pname, GLfloat* pParams)
151 glGetTexParameterfv(target, pname, pParams);
155 _GlLightModelf_1(GLenum pname, GLfloat param)
157 glLightModelf(pname, param);
161 _GlLightModelfv_1(GLenum pname, const GLfloat* pParams)
163 glLightModelfv(pname, pParams);
167 _GlLightf_1(GLenum light, GLenum pname, GLfloat param)
169 glLightf(light, pname, param);
173 _GlLightfv_1(GLenum light, GLenum pname, const GLfloat* pParams)
175 glLightfv(light, pname, pParams);
179 _GlLineWidth_1(GLfloat width)
185 _GlLoadMatrixf_1(const GLfloat* pM)
191 _GlMaterialf_1(GLenum face, GLenum pname, GLfloat param)
193 glMaterialf(face, pname, param);
197 _GlMaterialfv_1(GLenum face, GLenum pname, const GLfloat* pParams)
199 glMaterialfv(face, pname, pParams);
203 _GlMultMatrixf_1(const GLfloat* pM)
209 _GlMultiTexCoord4f_1(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
211 glMultiTexCoord4f(target, s, t, r, q);
215 _GlNormal3f_1(GLfloat nx, GLfloat ny, GLfloat nz)
217 glNormal3f(nx, ny, nz);
221 _GlOrthof_1(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
223 glOrthof(left, right, bottom, top, zNear, zFar);
227 _GlPointParameterf_1(GLenum pname, GLfloat param)
229 glPointParameterf(pname, param);
233 _GlPointParameterfv_1(GLenum pname, const GLfloat* pParams)
235 glPointParameterfv(pname, pParams);
239 _GlPointSize_1(GLfloat size)
245 _GlPolygonOffset_1(GLfloat factor, GLfloat units)
247 glPolygonOffset(factor, units);
251 _GlRotatef_1(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
253 glRotatef(angle, x, y, z);
257 _GlScalef_1(GLfloat x, GLfloat y, GLfloat z)
263 _GlTexEnvf_1(GLenum target, GLenum pname, GLfloat param)
265 glTexEnvf(target, pname, param);
269 _GlTexEnvfv_1(GLenum target, GLenum pname, const GLfloat* pParams)
271 glTexEnvfv(target, pname, pParams);
275 _GlTexParameterf_1(GLenum target, GLenum pname, GLfloat param)
277 glTexParameterf(target, pname, param);
281 _GlTexParameterfv_1(GLenum target, GLenum pname, const GLfloat* pParams)
283 glTexParameterfv(target, pname, pParams);
287 _GlTranslatef_1(GLfloat x, GLfloat y, GLfloat z)
289 glTranslatef(x, y, z);
293 _GlActiveTexture_1(GLenum texture)
295 glActiveTexture(texture);
299 _GlAlphaFuncx_1(GLenum func, GLclampx ref)
301 glAlphaFuncx(func, ref);
305 _GlBindBuffer_1(GLenum target, GLuint buffer)
307 glBindBuffer(target, buffer);
311 _GlBindTexture_1(GLenum target, GLuint texture)
313 glBindTexture(target, texture);
317 _GlBlendFunc_1(GLenum sfactor, GLenum dfactor)
319 glBlendFunc(sfactor, dfactor);
323 _GlBufferData_1(GLenum target, GLsizeiptr size, const GLvoid* pData, GLenum usage)
325 glBufferData(target, size, pData, usage);
329 _GlBufferSubData_1(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* pData)
331 glBufferSubData(target, offset, size, pData);
335 _GlClear_1(GLbitfield mask)
341 _GlClearColorx_1(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
343 glClearColorx(red, green, blue, alpha);
347 _GlClearDepthx_1(GLclampx depth)
349 glClearDepthx(depth);
353 _GlClearStencil_1(GLint s)
359 _GlClientActiveTexture_1(GLenum texture)
361 glClientActiveTexture(texture);
365 _GlClipPlanex_1(GLenum plane, const GLfixed* pEquation)
367 glClipPlanex(plane, pEquation);
371 _GlColor4ub_1(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
373 glColor4ub(red, green, blue, alpha);
377 _GlColor4x_1(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
379 glColor4x(red, green, blue, alpha);
383 _GlColorMask_1(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
385 glColorMask(red, green, blue, alpha);
389 _GlColorPointer_1(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer)
391 glColorPointer(size, type, stride, pPointer);
395 _GlCompressedTexImage2D_1(GLenum target, GLint level, GLenum internalformat,
396 GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* pData)
398 glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, pData);
402 _GlCompressedTexSubImage2D_1(GLenum target, GLint level, GLint xoffset, GLint yoffset,
403 GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* pData)
405 glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, pData);
409 _GlCopyTexImage2D_1(GLenum target, GLint level,
410 GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
412 glCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
416 _GlCopyTexSubImage2D_1(GLenum target, GLint level,
417 GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
419 glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
423 _GlCullFace_1(GLenum mode)
429 _GlDeleteBuffers_1(GLsizei n, const GLuint* pBuffers)
431 glDeleteBuffers(n, pBuffers);
435 _GlDeleteTextures_1(GLsizei n, const GLuint* pTextures)
437 glDeleteTextures(n, pTextures);
441 _GlDepthFunc_1(GLenum func)
447 _GlDepthMask_1(GLboolean flag)
453 _GlDepthRangex_1(GLclampx zNear, GLclampx zFar)
455 glDepthRangex(zNear, zFar);
459 _GlDisable_1(GLenum cap)
465 _GlDisableClientState_1(GLenum array)
467 glDisableClientState(array);
471 _GlDrawArrays_1(GLenum mode, GLint first, GLsizei count)
473 glDrawArrays(mode, first, count);
477 _GlDrawElements_1(GLenum mode, GLsizei count, GLenum type, const GLvoid* pIndices)
479 glDrawElements(mode, count, type, pIndices);
483 _GlEnable_1(GLenum cap)
489 _GlEnableClientState_1(GLenum array)
491 glEnableClientState(array);
507 _GlFogx_1(GLenum pname, GLfixed param)
509 glFogx(pname, param);
513 _GlFogxv_1(GLenum pname, const GLfixed* pParams)
515 glFogxv(pname, pParams);
519 _GlFrontFace_1(GLenum mode)
525 _GlFrustumx_1(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
527 glFrustumx(left, right, bottom, top, zNear, zFar);
531 _GlGetBooleanv_1(GLenum pname, GLboolean* pParams)
533 glGetBooleanv(pname, pParams);
537 _GlGetBufferParameteriv_1(GLenum target, GLenum pname, GLint* pParams)
539 glGetBufferParameteriv(target, pname, pParams);
543 _GlGetClipPlanex_1(GLenum pname, GLfixed eqn[4])
545 glGetClipPlanex(pname, eqn);
549 _GlGenBuffers_1(GLsizei n, GLuint* pBuffers)
551 glGenBuffers(n, pBuffers);
555 _GlGenTextures_1(GLsizei n, GLuint* pTextures)
557 glGenTextures(n, pTextures);
567 _GlGetFixedv_1(GLenum pname, GLfixed* pParams)
569 glGetFixedv(pname, pParams);
573 _GlGetIntegerv_1(GLenum pname, GLint* pParams)
575 glGetIntegerv(pname, pParams);
579 _GlGetLightxv_1(GLenum light, GLenum pname, GLfixed* pParams)
581 glGetLightxv(light, pname, pParams);
585 _GlGetMaterialxv_1(GLenum face, GLenum pname, GLfixed* pParams)
587 glGetMaterialxv(face, pname, pParams);
591 _GlGetPointerv_1(GLenum pname, void** ppParams)
593 glGetPointerv(pname, ppParams);
597 _GlGetString_1(GLenum name)
599 return glGetString(name);
603 _GlGetTexEnviv_1(GLenum env, GLenum pname, GLint* pParams)
605 glGetTexEnviv(env, pname, pParams);
609 _GlGetTexEnvxv_1(GLenum env, GLenum pname, GLfixed* pParams)
611 glGetTexEnvxv(env, pname, pParams);
615 _GlGetTexParameteriv_1(GLenum target, GLenum pname, GLint* pParams)
617 glGetTexParameteriv(target, pname, pParams);
621 _GlGetTexParameterxv_1(GLenum target, GLenum pname, GLfixed* pParams)
623 glGetTexParameterxv(target, pname, pParams);
627 _GlHint_1(GLenum target, GLenum mode)
629 glHint(target, mode);
633 _GlIsBuffer_1(GLuint buffer)
635 return glIsBuffer(buffer);
639 _GlIsEnabled_1(GLenum cap)
641 return glIsEnabled(cap);
645 _GlIsTexture_1(GLuint texture)
647 return glIsTexture(texture);
651 _GlLightModelx_1(GLenum pname, GLfixed param)
653 glLightModelx(pname, param);
657 _GlLightModelxv_1(GLenum pname, const GLfixed* pParams)
659 glLightModelxv(pname, pParams);
663 _GlLightx_1(GLenum light, GLenum pname, GLfixed param)
665 glLightx(light, pname, param);
669 _GlLightxv_1(GLenum light, GLenum pname, const GLfixed* pParams)
671 glLightxv(light, pname, pParams);
675 _GlLineWidthx_1(GLfixed width)
681 _GlLoadIdentity_1(void)
687 _GlLoadMatrixx_1(const GLfixed* pM)
693 _GlLogicOp_1(GLenum opcode)
699 _GlMaterialx_1(GLenum face, GLenum pname, GLfixed param)
701 glMaterialx(face, pname, param);
705 _GlMaterialxv_1(GLenum face, GLenum pname, const GLfixed* pParams)
707 glMaterialxv(face, pname, pParams);
711 _GlMatrixMode_1(GLenum mode)
717 _GlMultMatrixx_1(const GLfixed* pM)
723 _GlMultiTexCoord4x_1(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
725 glMultiTexCoord4x(target, s, t, r, q);
729 _GlNormal3x_1(GLfixed nx, GLfixed ny, GLfixed nz)
731 glNormal3x(nx, ny, nz);
735 _GlNormalPointer_1(GLenum type, GLsizei stride, const GLvoid* pPointer)
737 glNormalPointer(type, stride, pPointer);
741 _GlOrthox_1(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
743 glOrthox(left, right, bottom, top, zNear, zFar);
747 _GlPixelStorei_1(GLenum pname, GLint param)
749 glPixelStorei(pname, param);
753 _GlPointParameterx_1(GLenum pname, GLfixed param)
755 glPointParameterx(pname, param);
759 _GlPointParameterxv_1(GLenum pname, const GLfixed* pParams)
761 glPointParameterxv(pname, pParams);
765 _GlPointSizex_1(GLfixed size)
771 _GlPolygonOffsetx_1(GLfixed factor, GLfixed units)
773 glPolygonOffsetx(factor, units);
783 _GlPushMatrix_1(void)
789 _GlReadPixels_1(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pPixels)
791 glReadPixels(x, y, width, height, format, type, pPixels);
795 _GlRotatex_1(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
797 glRotatex(angle, x, y, z);
801 _GlSampleCoverage_1(GLclampf value, GLboolean invert)
803 glSampleCoverage(value, invert);
807 _GlSampleCoveragex_1(GLclampx value, GLboolean invert)
809 glSampleCoveragex(value, invert);
813 _GlScalex_1(GLfixed x, GLfixed y, GLfixed z)
819 _GlScissor_1(GLint x, GLint y, GLsizei width, GLsizei height)
821 glScissor(x, y, width, height);
825 _GlShadeModel_1(GLenum mode)
831 _GlStencilFunc_1(GLenum func, GLint ref, GLuint mask)
833 glStencilFunc(func, ref, mask);
837 _GlStencilMask_1(GLuint mask)
843 _GlStencilOp_1(GLenum fail, GLenum zfail, GLenum zpass)
845 glStencilOp(fail, zfail, zpass);
849 _GlTexCoordPointer_1(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer)
851 glTexCoordPointer(size, type, stride, pPointer);
855 _GlTexEnvi_1(GLenum target, GLenum pname, GLint param)
857 glTexEnvi(target, pname, param);
861 _GlTexEnvx_1(GLenum target, GLenum pname, GLfixed param)
863 glTexEnvx(target, pname, param);
867 _GlTexEnviv_1(GLenum target, GLenum pname, const GLint* pParams)
869 glTexEnviv(target, pname, pParams);
873 _GlTexEnvxv_1(GLenum target, GLenum pname, const GLfixed* pParams)
875 glTexEnvxv(target, pname, pParams);
879 _GlTexImage2D_1(GLenum target, GLint level, GLint internalformat,
880 GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pPixels)
882 glTexImage2D(target, level, internalformat, width, height, border, format, type, pPixels);
886 _GlTexParameteri_1(GLenum target, GLenum pname, GLint param)
888 glTexParameteri(target, pname, param);
892 _GlTexParameterx_1(GLenum target, GLenum pname, GLfixed param)
894 glTexParameterx(target, pname, param);
898 _GlTexParameteriv_1(GLenum target, GLenum pname, const GLint* pParams)
900 glTexParameteriv(target, pname, pParams);
904 _GlTexParameterxv_1(GLenum target, GLenum pname, const GLfixed* pParams)
906 glTexParameterxv(target, pname, pParams);
910 _GlTexSubImage2D_1(GLenum target, GLint level, GLint xoffset, GLint yoffset,
911 GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pPixels)
913 glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pPixels);
917 _GlTranslatex_1(GLfixed x, GLfixed y, GLfixed z)
919 glTranslatex(x, y, z);
923 _GlVertexPointer_1(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer)
925 glVertexPointer(size, type, stride, pPointer);
929 _GlViewport_1(GLint x, GLint y, GLsizei width, GLsizei height)
931 glViewport(x, y, width, height);
935 _GlPointSizePointerOES_1(GLenum type, GLsizei stride, const GLvoid* pPointer)
937 glPointSizePointerOES(type, stride, pPointer);
941 _GlCurrentPaletteMatrixOES_1(GLuint matrixpaletteindex)
943 //glCurrentPaletteMatrixOES(matrixpaletteindex);
946 _GlLoadPaletteFromModelViewMatrixOES_1(void)
948 //glLoadPaletteFromModelViewMatrixOES();
951 _GlMatrixIndexPointerOES_1(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer)
953 //glMatrixIndexPointerOES(size, type, stride, pPointer);
956 _GlWeightPointerOES_1(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer)
958 //glWeightPointerOES(size, type, stride, pPointer);
961 // FBO is extension functions in OpenGL ES 1.1
962 //Start of FBO Functions
964 _GlIsRenderbufferOES_1(GLuint renderbuffer)
966 //return glIsRenderbufferOES(renderbuffer);
970 _GlBindRenderbufferOES_1(GLenum target, GLuint renderbuffer)
972 //glBindRenderbufferOES(target, renderbuffer);
975 _GlDeleteRenderbuffersOES_1(GLsizei n, const GLuint* pRenderbuffers)
977 //glDeleteRenderbuffersOES(n, pRenderbuffers);
980 _GlGenRenderbuffersOES_1(GLsizei n, GLuint* pRenderbuffers)
982 //glGenRenderbuffersOES(n, pRenderbuffers);
985 _GlRenderbufferStorageOES_1(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
987 //glRenderbufferStorageOES(target, internalformat, width, height);
990 _GlGetRenderbufferParameterivOES_1(GLenum target, GLenum pname, GLint* pParams)
992 //glGetRenderbufferParameterivOES(target, pname, pParams);
995 _GlIsFramebufferOES_1(GLuint framebuffer)
997 //return glIsFramebufferOES(framebuffer);
1001 _GlBindFramebufferOES_1(GLenum target, GLuint framebuffer)
1003 //glBindFramebufferOES(target, framebuffer);
1006 _GlDeleteFramebuffersOES_1(GLsizei n, const GLuint* pFramebuffers)
1008 //glDeleteFramebuffersOES(n, pFramebuffers);
1011 _GlGenFramebuffersOES_1(GLsizei n, GLuint* pFramebuffers)
1013 //glGenFramebuffersOES(n, pFramebuffers);
1016 _GlCheckFramebufferStatusOES_1(GLenum target)
1018 //return glCheckFramebufferStatusOES(target);;
1022 _GlFramebufferRenderbufferOES_1(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
1024 //glFramebufferRenderbufferOES(target, attachment, renderbuffertarget, renderbuffer);
1027 _GlFramebufferTexture2DOES_1(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
1029 //glFramebufferTexture2DOES(target, attachment, textarget, texture, level);
1032 _GlGetFramebufferAttachmentParameterivOES_1(GLenum target, GLenum attachment, GLenum pname, GLint* pParams)
1034 //glGetFramebufferAttachmentParameterivOES(target, attachment, pname, pParams);
1037 _GlGenerateMipmapOES_1(GLenum target)
1039 //glGenerateMipmapOES(target);
1041 //End of FBO Functions
1049 #define _GLES_CHECK_INTERFACE_VOID_1 if (!_GlesInterfaceInitialize_1()) \
1053 #define _GLES_CHECK_INTERFACE_GLBOOLEAN_1 if (!_GlesInterfaceInitialize_1()) \
1057 #define _GLES_CHECK_INTERFACE_GLENUM_1 if (!_GlesInterfaceInitialize_1()) \
1061 #define _GLES_CHECK_INTERFACE_CONST_GLUBYTEP_1 if (!_GlesInterfaceInitialize_1()) \
1063 return (const GLubyte*) 0; \
1066 namespace // unnamed
1069 struct _GlesInterface1
1071 void (* glAlphaFunc)(GLenum func, GLclampf ref);
1072 void (* glClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
1073 void (* glClearDepthf)(GLclampf depth);
1074 void (* glClipPlanef)(GLenum plane, const GLfloat* pEquation);
1075 void (* glColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
1076 void (* glDepthRangef)(GLclampf zNear, GLclampf zFar);
1077 void (* glFogf)(GLenum pname, GLfloat param);
1078 void (* glFogfv)(GLenum pname, const GLfloat* pParams);
1079 void (* glFrustumf)(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
1080 void (* glGetClipPlanef)(GLenum pname, GLfloat eqn[4]);
1081 void (* glGetFloatv)(GLenum pname, GLfloat* pParams);
1082 void (* glGetLightfv)(GLenum light, GLenum pname, GLfloat* pParams);
1083 void (* glGetMaterialfv)(GLenum face, GLenum pname, GLfloat* pParams);
1084 void (* glGetTexEnvfv)(GLenum env, GLenum pname, GLfloat* pParams);
1085 void (* glGetTexParameterfv)(GLenum target, GLenum pname, GLfloat* pParams);
1086 void (* glLightModelf)(GLenum pname, GLfloat param);
1087 void (* glLightModelfv)(GLenum pname, const GLfloat* pParams);
1088 void (* glLightf)(GLenum light, GLenum pname, GLfloat param);
1089 void (* glLightfv)(GLenum light, GLenum pname, const GLfloat* pParams);
1090 void (* glLineWidth)(GLfloat width);
1091 void (* glLoadMatrixf)(const GLfloat* pM);
1092 void (* glMaterialf)(GLenum face, GLenum pname, GLfloat param);
1093 void (* glMaterialfv)(GLenum face, GLenum pname, const GLfloat* pParams);
1094 void (* glMultMatrixf)(const GLfloat* pM);
1095 void (* glMultiTexCoord4f)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
1096 void (* glNormal3f)(GLfloat nx, GLfloat ny, GLfloat nz);
1097 void (* glOrthof)(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
1098 void (* glPointParameterf)(GLenum pname, GLfloat param);
1099 void (* glPointParameterfv)(GLenum pname, const GLfloat* pParams);
1100 void (* glPointSize)(GLfloat size);
1101 void (* glPolygonOffset)(GLfloat factor, GLfloat units);
1102 void (* glRotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
1103 void (* glScalef)(GLfloat x, GLfloat y, GLfloat z);
1104 void (* glTexEnvf)(GLenum target, GLenum pname, GLfloat param);
1105 void (* glTexEnvfv)(GLenum target, GLenum pname, const GLfloat* pParams);
1106 void (* glTexParameterf)(GLenum target, GLenum pname, GLfloat param);
1107 void (* glTexParameterfv)(GLenum target, GLenum pname, const GLfloat* pParams);
1108 void (* glTranslatef)(GLfloat x, GLfloat y, GLfloat z);
1109 void (* glActiveTexture)(GLenum texture);
1110 void (* glAlphaFuncx)(GLenum func, GLclampx ref);
1111 void (* glBindBuffer)(GLenum target, GLuint buffer);
1112 void (* glBindTexture)(GLenum target, GLuint texture);
1113 void (* glBlendFunc)(GLenum sfactor, GLenum dfactor);
1114 void (* glBufferData)(GLenum target, GLsizeiptr size, const GLvoid* pData, GLenum usage);
1115 void (* glBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* pData);
1116 void (* glClear)(GLbitfield mask);
1117 void (* glClearColorx)(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
1118 void (* glClearDepthx)(GLclampx depth);
1119 void (* glClearStencil)(GLint s);
1120 void (* glClientActiveTexture)(GLenum texture);
1121 void (* glClipPlanex)(GLenum plane, const GLfixed* pEquation);
1122 void (* glColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
1123 void (* glColor4x)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
1124 void (* glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
1125 void (* glColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer);
1126 void (* glCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* pData);
1127 void (* glCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* pData);
1128 void (* glCopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
1129 void (* glCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
1130 void (* glCullFace)(GLenum mode);
1131 void (* glDeleteBuffers)(GLsizei n, const GLuint* pBuffers);
1132 void (* glDeleteTextures)(GLsizei n, const GLuint* pTextures);
1133 void (* glDepthFunc)(GLenum func);
1134 void (* glDepthMask)(GLboolean flag);
1135 void (* glDepthRangex)(GLclampx zNear, GLclampx zFar);
1136 void (* glDisable)(GLenum cap);
1137 void (* glDisableClientState)(GLenum array);
1138 void (* glDrawArrays)(GLenum mode, GLint first, GLsizei count);
1139 void (* glDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid* pIndices);
1140 void (* glEnable)(GLenum cap);
1141 void (* glEnableClientState)(GLenum array);
1142 void (* glFinish)(void);
1143 void (* glFlush)(void);
1144 void (* glFogx)(GLenum pname, GLfixed param);
1145 void (* glFogxv)(GLenum pname, const GLfixed* pParams);
1146 void (* glFrontFace)(GLenum mode);
1147 void (* glFrustumx)(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
1148 void (* glGetBooleanv)(GLenum pname, GLboolean* pParams);
1149 void (* glGetBufferParameteriv)(GLenum target, GLenum pname, GLint* pParams);
1150 void (* glGetClipPlanex)(GLenum pname, GLfixed eqn[4]);
1151 void (* glGenBuffers)(GLsizei n, GLuint* pBuffers);
1152 void (* glGenTextures)(GLsizei n, GLuint* pTextures);
1153 GLenum (* glGetError)(void);
1154 void (* glGetFixedv)(GLenum pname, GLfixed* pParams);
1155 void (* glGetIntegerv)(GLenum pname, GLint* pParams);
1156 void (* glGetLightxv)(GLenum light, GLenum pname, GLfixed* pParams);
1157 void (* glGetMaterialxv)(GLenum face, GLenum pname, GLfixed* pParams);
1158 void (* glGetPointerv)(GLenum pname, void** ppParams);
1159 const GLubyte* (*glGetString)(GLenum name);
1160 void (* glGetTexEnviv)(GLenum env, GLenum pname, GLint* pParams);
1161 void (* glGetTexEnvxv)(GLenum env, GLenum pname, GLfixed* pParams);
1162 void (* glGetTexParameteriv)(GLenum target, GLenum pname, GLint* pParams);
1163 void (* glGetTexParameterxv)(GLenum target, GLenum pname, GLfixed* pParams);
1164 void (* glHint)(GLenum target, GLenum mode);
1165 GLboolean (* glIsBuffer)(GLuint buffer);
1166 GLboolean (* glIsEnabled)(GLenum cap);
1167 GLboolean (* glIsTexture)(GLuint texture);
1168 void (* glLightModelx)(GLenum pname, GLfixed param);
1169 void (* glLightModelxv)(GLenum pname, const GLfixed* pParams);
1170 void (* glLightx)(GLenum light, GLenum pname, GLfixed param);
1171 void (* glLightxv)(GLenum light, GLenum pname, const GLfixed* pParams);
1172 void (* glLineWidthx)(GLfixed width);
1173 void (* glLoadIdentity)(void);
1174 void (* glLoadMatrixx)(const GLfixed* pM);
1175 void (* glLogicOp)(GLenum opcode);
1176 void (* glMaterialx)(GLenum face, GLenum pname, GLfixed param);
1177 void (* glMaterialxv)(GLenum face, GLenum pname, const GLfixed* pParams);
1178 void (* glMatrixMode)(GLenum mode);
1179 void (* glMultMatrixx)(const GLfixed* pM);
1180 void (* glMultiTexCoord4x)(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
1181 void (* glNormal3x)(GLfixed nx, GLfixed ny, GLfixed nz);
1182 void (* glNormalPointer)(GLenum type, GLsizei stride, const GLvoid* pPointer);
1183 void (* glOrthox)(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
1184 void (* glPixelStorei)(GLenum pname, GLint param);
1185 void (* glPointParameterx)(GLenum pname, GLfixed param);
1186 void (* glPointParameterxv)(GLenum pname, const GLfixed* pParams);
1187 void (* glPointSizex)(GLfixed size);
1188 void (* glPolygonOffsetx)(GLfixed factor, GLfixed units);
1189 void (* glPopMatrix)(void);
1190 void (* glPushMatrix)(void);
1191 void (* glReadPixels)(GLint x, GLint y,
1192 GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pPixels);
1193 void (* glRotatex)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
1194 void (* glSampleCoverage)(GLclampf value, GLboolean invert);
1195 void (* glSampleCoveragex)(GLclampx value, GLboolean invert);
1196 void (* glScalex)(GLfixed x, GLfixed y, GLfixed z);
1197 void (* glScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
1198 void (* glShadeModel)(GLenum mode);
1199 void (* glStencilFunc)(GLenum func, GLint ref, GLuint mask);
1200 void (* glStencilMask)(GLuint mask);
1201 void (* glStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
1202 void (* glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer);
1203 void (* glTexEnvi)(GLenum target, GLenum pname, GLint param);
1204 void (* glTexEnvx)(GLenum target, GLenum pname, GLfixed param);
1205 void (* glTexEnviv)(GLenum target, GLenum pname, const GLint* pParams);
1206 void (* glTexEnvxv)(GLenum target, GLenum pname, const GLfixed* pParams);
1207 void (* glTexImage2D)(GLenum target, GLint level, GLint internalformat,
1208 GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pPixels);
1209 void (* glTexParameteri)(GLenum target, GLenum pname, GLint param);
1210 void (* glTexParameterx)(GLenum target, GLenum pname, GLfixed param);
1211 void (* glTexParameteriv)(GLenum target, GLenum pname, const GLint* pParams);
1212 void (* glTexParameterxv)(GLenum target, GLenum pname, const GLfixed* pParams);
1213 void (* glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset,
1214 GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pPixels);
1215 void (* glTranslatex)(GLfixed x, GLfixed y, GLfixed z);
1216 void (* glVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid* Pointer);
1217 void (* glViewport)(GLint x, GLint y, GLsizei width, GLsizei height);
1218 void (* glPointSizePointerOES)(GLenum type, GLsizei stride, const GLvoid* pPointer);
1219 void (* glCurrentPaletteMatrixOES) (GLuint matrixpaletteindex);
1220 void (* glLoadPaletteFromModelViewMatrixOES) (void);
1221 void (* glMatrixIndexPointerOES) (GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer);
1222 void (* glWeightPointerOES) (GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer);
1223 GLboolean (* glIsRenderbufferOES) (GLuint renderbuffer);
1224 void (* glBindRenderbufferOES) (GLenum target, GLuint renderbuffer);
1225 void (* glDeleteRenderbuffersOES) (GLsizei n, const GLuint* pRenderbuffers);
1226 void (* glGenRenderbuffersOES) (GLsizei n, GLuint* pRenderbuffers);
1227 void (* glRenderbufferStorageOES) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
1228 void (* glGetRenderbufferParameterivOES) (GLenum target, GLenum pname, GLint* pParams);
1229 GLboolean (* glIsFramebufferOES) (GLuint framebuffer);
1230 void (* glBindFramebufferOES) (GLenum target, GLuint framebuffer);
1231 void (* glDeleteFramebuffersOES) (GLsizei n, const GLuint* pFramebuffers);
1232 void (* glGenFramebuffersOES) (GLsizei n, GLuint* pFramebuffers);
1233 GLenum (* glCheckFramebufferStatusOES) (GLenum target);
1234 void (* glFramebufferRenderbufferOES) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
1235 void (* glFramebufferTexture2DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
1236 void (* glGetFramebufferAttachmentParameterivOES) (GLenum target, GLenum attachment, GLenum pname, GLint* pParams);
1237 void (* glGenerateMipmapOES) (GLenum target);
1240 void* _pGlesLib1 = NULL;
1241 _GlesInterface1 _glesImpl1 = {0, };
1243 const int _MAX_GLES_FUNCTION_1 = 164; //145 // extensions 164;
1244 const char _glesStrings1[_MAX_GLES_FUNCTION_1][64] =
1260 "glGetTexParameterfv",
1266 "glLoadMatrixf", //20
1270 "glMultiTexCoord4f",
1273 "glPointParameterf",
1274 "glPointParameterfv",
1276 "glPolygonOffset", //30
1286 "glBindBuffer", //40
1295 "glClientActiveTexture",
1296 "glClipPlanex", //50
1301 "glCompressedTexImage2D",
1302 "glCompressedTexSubImage2D",
1304 "glCopyTexSubImage2D",
1306 "glDeleteBuffers", //60
1312 "glDisableClientState",
1316 "glEnableClientState", //70
1324 "glGetBufferParameteriv",
1326 "glGenBuffers", //80
1336 "glGetTexEnvxv", //90
1337 "glGetTexParameteriv",
1338 "glGetTexParameterxv",
1355 "glMultiTexCoord4x",
1360 "glPointParameterx",
1361 "glPointParameterxv",
1366 "glReadPixels", //120
1369 "glSampleCoveragex",
1376 "glTexCoordPointer", //130
1386 "glTexSubImage2D", //140
1390 "glPointSizePointerOES", //144
1391 "glCurrentPaletteMatrixOES",
1392 "glLoadPaletteFromModelViewMatrixOES",
1393 "glMatrixIndexPointerOES",
1394 "glWeightPointerOES",
1395 "glIsRenderbufferOES",
1396 "glBindRenderbufferOES", //150
1397 "glDeleteRenderbuffersOES",
1398 "glGenRenderbuffersOES",
1399 "glRenderbufferStorageOES",
1400 "glGetRenderbufferParameterivOES",
1401 "glIsFramebufferOES",
1402 "glBindFramebufferOES",
1403 "glDeleteFramebuffersOES",
1404 "glGenFramebuffersOES",
1405 "glCheckFramebufferStatusOES",
1406 "glFramebufferRenderbufferOES", //160
1407 "glFramebufferTexture2DOES",
1408 "glGetFramebufferAttachmentParameterivOES",
1409 "glGenerateMipmapOES" //163
1413 _GlesInterfaceInitialize_1(void)
1417 if (_pGlesLib1 == NULL)
1419 ptrdiff_t** ppPtr = (ptrdiff_t**) (&_glesImpl1);
1421 _pGlesLib1 = dlopen("libGLESv1_CM.so", RTLD_LAZY | RTLD_GLOBAL);
1422 if (_pGlesLib1 == NULL)
1424 SysLog(NID_GRP, "gles1 dlopen failed! %s", dlerror());
1428 for (count = 0; count < _MAX_GLES_FUNCTION_1; count++)
1430 *ppPtr = (ptrdiff_t*) (dlsym(_pGlesLib1, _glesStrings1[count]));
1434 SysLog(NID_GRP, "dlsym failed! %s name : %s", dlerror(), _glesStrings1[count]);
1450 #if defined(FGRAPHICS_INTERNAL_USE_FBO)
1451 GLuint _GlesGetCurrentFbo(void);
1452 bool _GlesFboEnableStencil(GLuint& frameBufferObject, GLuint& renderBuffer);
1456 _GlesInterfaceTerminate_1(void)
1458 if (_pGlesLib1 != NULL)
1460 dlclose(_pGlesLib1);
1466 _GlAlphaFunc_1(GLenum func, GLclampf ref)
1468 _GLES_CHECK_INTERFACE_VOID_1
1469 _glesImpl1.glAlphaFunc(func, ref);
1473 _GlClearColor_1(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
1475 _GLES_CHECK_INTERFACE_VOID_1
1476 _glesImpl1.glClearColor(red, green, blue, alpha);
1480 _GlClearDepthf_1(GLclampf depth)
1482 _GLES_CHECK_INTERFACE_VOID_1
1483 _glesImpl1.glClearDepthf(depth);
1487 _GlClipPlanef_1(GLenum plane, const GLfloat* pEquation)
1489 _GLES_CHECK_INTERFACE_VOID_1
1490 _glesImpl1.glClipPlanef(plane, pEquation);
1494 _GlColor4f_1(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
1496 _GLES_CHECK_INTERFACE_VOID_1
1497 _glesImpl1.glColor4f(red, green, blue, alpha);
1501 _GlDepthRangef_1(GLclampf zNear, GLclampf zFar)
1503 _GLES_CHECK_INTERFACE_VOID_1
1504 _glesImpl1.glDepthRangef(zNear, zFar);
1508 _GlFogf_1(GLenum pname, GLfloat param)
1510 _GLES_CHECK_INTERFACE_VOID_1
1511 _glesImpl1.glFogf(pname, param);
1515 _GlFogfv_1(GLenum pname, const GLfloat* pParams)
1517 _GLES_CHECK_INTERFACE_VOID_1
1518 _glesImpl1.glFogfv(pname, pParams);
1522 _GlFrustumf_1(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
1524 _GLES_CHECK_INTERFACE_VOID_1
1525 _glesImpl1.glFrustumf(left, right, bottom, top, zNear, zFar);
1529 _GlGetClipPlanef_1(GLenum pname, GLfloat eqn[4])
1531 _GLES_CHECK_INTERFACE_VOID_1
1532 _glesImpl1.glGetClipPlanef(pname, eqn);
1536 _GlGetFloatv_1(GLenum pname, GLfloat* pParams)
1538 _GLES_CHECK_INTERFACE_VOID_1
1539 _glesImpl1.glGetFloatv(pname, pParams);
1543 _GlGetLightfv_1(GLenum light, GLenum pname, GLfloat* pParams)
1545 _GLES_CHECK_INTERFACE_VOID_1
1546 _glesImpl1.glGetLightfv(light, pname, pParams);
1550 _GlGetMaterialfv_1(GLenum face, GLenum pname, GLfloat* pParams)
1552 _GLES_CHECK_INTERFACE_VOID_1
1553 _glesImpl1.glGetMaterialfv(face, pname, pParams);
1557 _GlGetTexEnvfv_1(GLenum env, GLenum pname, GLfloat* pParams)
1559 _GLES_CHECK_INTERFACE_VOID_1
1560 _glesImpl1.glGetTexEnvfv(env, pname, pParams);
1564 _GlGetTexParameterfv_1(GLenum target, GLenum pname, GLfloat* pParams)
1566 _GLES_CHECK_INTERFACE_VOID_1
1567 _glesImpl1.glGetTexParameterfv(target, pname, pParams);
1571 _GlLightModelf_1(GLenum pname, GLfloat param)
1573 _GLES_CHECK_INTERFACE_VOID_1
1574 _glesImpl1.glLightModelf(pname, param);
1578 _GlLightModelfv_1(GLenum pname, const GLfloat* pParams)
1580 _GLES_CHECK_INTERFACE_VOID_1
1581 _glesImpl1.glLightModelfv(pname, pParams);
1585 _GlLightf_1(GLenum light, GLenum pname, GLfloat param)
1587 _GLES_CHECK_INTERFACE_VOID_1
1588 _glesImpl1.glLightf(light, pname, param);
1592 _GlLightfv_1(GLenum light, GLenum pname, const GLfloat* pParams)
1594 _GLES_CHECK_INTERFACE_VOID_1
1595 _glesImpl1.glLightfv(light, pname, pParams);
1599 _GlLineWidth_1(GLfloat width)
1601 _GLES_CHECK_INTERFACE_VOID_1
1602 _glesImpl1.glLineWidth(width);
1606 _GlLoadMatrixf_1(const GLfloat* pM)
1608 _GLES_CHECK_INTERFACE_VOID_1
1609 _glesImpl1.glLoadMatrixf(pM);
1613 _GlMaterialf_1(GLenum face, GLenum pname, GLfloat param)
1615 _GLES_CHECK_INTERFACE_VOID_1
1616 _glesImpl1.glMaterialf(face, pname, param);
1620 _GlMaterialfv_1(GLenum face, GLenum pname, const GLfloat* pParams)
1622 _GLES_CHECK_INTERFACE_VOID_1
1623 _glesImpl1.glMaterialfv(face, pname, pParams);
1627 _GlMultMatrixf_1(const GLfloat* pM)
1629 _GLES_CHECK_INTERFACE_VOID_1
1630 _glesImpl1.glMultMatrixf(pM);
1634 _GlMultiTexCoord4f_1(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
1636 _GLES_CHECK_INTERFACE_VOID_1
1637 _glesImpl1.glMultiTexCoord4f(target, s, t, r, q);
1641 _GlNormal3f_1(GLfloat nx, GLfloat ny, GLfloat nz)
1643 _GLES_CHECK_INTERFACE_VOID_1
1644 _glesImpl1.glNormal3f(nx, ny, nz);
1648 _GlOrthof_1(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
1650 _GLES_CHECK_INTERFACE_VOID_1
1651 _glesImpl1.glOrthof(left, right, bottom, top, zNear, zFar);
1655 _GlPointParameterf_1(GLenum pname, GLfloat param)
1657 _GLES_CHECK_INTERFACE_VOID_1
1658 _glesImpl1.glPointParameterf(pname, param);
1662 _GlPointParameterfv_1(GLenum pname, const GLfloat* pParams)
1664 _GLES_CHECK_INTERFACE_VOID_1
1665 _glesImpl1.glPointParameterfv(pname, pParams);
1669 _GlPointSize_1(GLfloat size)
1671 _GLES_CHECK_INTERFACE_VOID_1
1672 _glesImpl1.glPointSize(size);
1676 _GlPolygonOffset_1(GLfloat factor, GLfloat units)
1678 _GLES_CHECK_INTERFACE_VOID_1
1679 _glesImpl1.glPolygonOffset(factor, units);
1683 _GlRotatef_1(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
1685 _GLES_CHECK_INTERFACE_VOID_1
1686 _glesImpl1.glRotatef(angle, x, y, z);
1690 _GlScalef_1(GLfloat x, GLfloat y, GLfloat z)
1692 _GLES_CHECK_INTERFACE_VOID_1
1693 _glesImpl1.glScalef(x, y, z);
1697 _GlTexEnvf_1(GLenum target, GLenum pname, GLfloat param)
1699 _GLES_CHECK_INTERFACE_VOID_1
1700 _glesImpl1.glTexEnvf(target, pname, param);
1704 _GlTexEnvfv_1(GLenum target, GLenum pname, const GLfloat* pParams)
1706 _GLES_CHECK_INTERFACE_VOID_1
1707 _glesImpl1.glTexEnvfv(target, pname, pParams);
1711 _GlTexParameterf_1(GLenum target, GLenum pname, GLfloat param)
1713 _GLES_CHECK_INTERFACE_VOID_1
1714 _glesImpl1.glTexParameterf(target, pname, param);
1718 _GlTexParameterfv_1(GLenum target, GLenum pname, const GLfloat* pParams)
1720 _GLES_CHECK_INTERFACE_VOID_1
1721 _glesImpl1.glTexParameterfv(target, pname, pParams);
1725 _GlTranslatef_1(GLfloat x, GLfloat y, GLfloat z)
1727 _GLES_CHECK_INTERFACE_VOID_1
1728 _glesImpl1.glTranslatef(x, y, z);
1732 _GlActiveTexture_1(GLenum texture)
1734 _GLES_CHECK_INTERFACE_VOID_1
1735 _glesImpl1.glActiveTexture(texture);
1739 _GlAlphaFuncx_1(GLenum func, GLclampx ref)
1741 _GLES_CHECK_INTERFACE_VOID_1
1742 _glesImpl1.glAlphaFuncx(func, ref);
1746 _GlBindBuffer_1(GLenum target, GLuint buffer)
1748 _GLES_CHECK_INTERFACE_VOID_1
1749 _glesImpl1.glBindBuffer(target, buffer);
1753 _GlBindTexture_1(GLenum target, GLuint texture)
1755 _GLES_CHECK_INTERFACE_VOID_1
1756 _glesImpl1.glBindTexture(target, texture);
1760 _GlBlendFunc_1(GLenum sfactor, GLenum dfactor)
1762 _GLES_CHECK_INTERFACE_VOID_1
1763 _glesImpl1.glBlendFunc(sfactor, dfactor);
1767 _GlBufferData_1(GLenum target, GLsizeiptr size, const GLvoid* pData, GLenum usage)
1769 _GLES_CHECK_INTERFACE_VOID_1
1770 _glesImpl1.glBufferData(target, size, pData, usage);
1774 _GlBufferSubData_1(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* pData)
1776 _GLES_CHECK_INTERFACE_VOID_1
1777 _glesImpl1.glBufferSubData(target, offset, size, pData);
1781 _GlClear_1(GLbitfield mask)
1783 _GLES_CHECK_INTERFACE_VOID_1
1784 _glesImpl1.glClear(mask);
1788 _GlClearColorx_1(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
1790 _GLES_CHECK_INTERFACE_VOID_1
1791 _glesImpl1.glClearColorx(red, green, blue, alpha);
1795 _GlClearDepthx_1(GLclampx depth)
1797 _GLES_CHECK_INTERFACE_VOID_1
1798 _glesImpl1.glClearDepthx(depth);
1802 _GlClearStencil_1(GLint s)
1804 _GLES_CHECK_INTERFACE_VOID_1
1805 _glesImpl1.glClearStencil(s);
1809 _GlClientActiveTexture_1(GLenum texture)
1811 _GLES_CHECK_INTERFACE_VOID_1
1812 _glesImpl1.glClientActiveTexture(texture);
1816 _GlClipPlanex_1(GLenum plane, const GLfixed* pEquation)
1818 _GLES_CHECK_INTERFACE_VOID_1
1819 _glesImpl1.glClipPlanex(plane, pEquation);
1823 _GlColor4ub_1(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
1825 _GLES_CHECK_INTERFACE_VOID_1
1826 _glesImpl1.glColor4ub(red, green, blue, alpha);
1830 _GlColor4x_1(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
1832 _GLES_CHECK_INTERFACE_VOID_1
1833 _glesImpl1.glColor4x(red, green, blue, alpha);
1837 _GlColorMask_1(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
1839 _GLES_CHECK_INTERFACE_VOID_1
1840 _glesImpl1.glColorMask(red, green, blue, alpha);
1844 _GlColorPointer_1(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer)
1846 _GLES_CHECK_INTERFACE_VOID_1
1847 _glesImpl1.glColorPointer(size, type, stride, pPointer);
1851 _GlCompressedTexImage2D_1(GLenum target, GLint level, GLenum internalformat,
1852 GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* pData)
1854 _GLES_CHECK_INTERFACE_VOID_1
1855 _glesImpl1.glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, pData);
1859 _GlCompressedTexSubImage2D_1(GLenum target, GLint level, GLint xoffset, GLint yoffset,
1860 GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* pData)
1862 _GLES_CHECK_INTERFACE_VOID_1
1863 _glesImpl1.glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, pData);
1867 _GlCopyTexImage2D_1(GLenum target, GLint level,
1868 GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
1870 _GLES_CHECK_INTERFACE_VOID_1
1871 _glesImpl1.glCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
1875 _GlCopyTexSubImage2D_1(GLenum target, GLint level,
1876 GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
1878 _GLES_CHECK_INTERFACE_VOID_1
1879 _glesImpl1.glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
1883 _GlCullFace_1(GLenum mode)
1885 _GLES_CHECK_INTERFACE_VOID_1
1886 _glesImpl1.glCullFace(mode);
1890 _GlDeleteBuffers_1(GLsizei n, const GLuint* pBuffers)
1892 _GLES_CHECK_INTERFACE_VOID_1
1893 _glesImpl1.glDeleteBuffers(n, pBuffers);
1897 _GlDeleteTextures_1(GLsizei n, const GLuint* pTextures)
1899 _GLES_CHECK_INTERFACE_VOID_1
1900 _glesImpl1.glDeleteTextures(n, pTextures);
1904 _GlDepthFunc_1(GLenum func)
1906 _GLES_CHECK_INTERFACE_VOID_1
1907 _glesImpl1.glDepthFunc(func);
1911 _GlDepthMask_1(GLboolean flag)
1913 _GLES_CHECK_INTERFACE_VOID_1
1914 _glesImpl1.glDepthMask(flag);
1918 _GlDepthRangex_1(GLclampx zNear, GLclampx zFar)
1920 _GLES_CHECK_INTERFACE_VOID_1
1921 _glesImpl1.glDepthRangex(zNear, zFar);
1925 _GlDisable_1(GLenum cap)
1927 _GLES_CHECK_INTERFACE_VOID_1
1928 _glesImpl1.glDisable(cap);
1932 _GlDisableClientState_1(GLenum array)
1934 _GLES_CHECK_INTERFACE_VOID_1
1935 _glesImpl1.glDisableClientState(array);
1939 _GlDrawArrays_1(GLenum mode, GLint first, GLsizei count)
1941 _GLES_CHECK_INTERFACE_VOID_1
1942 _glesImpl1.glDrawArrays(mode, first, count);
1946 _GlDrawElements_1(GLenum mode, GLsizei count, GLenum type, const GLvoid* pIndices)
1948 _GLES_CHECK_INTERFACE_VOID_1
1949 _glesImpl1.glDrawElements(mode, count, type, pIndices);
1953 _GlEnable_1(GLenum cap)
1955 _GLES_CHECK_INTERFACE_VOID_1
1956 #if defined(FGRAPHICS_INTERNAL_USE_FBO)
1957 if (cap == GL_STENCIL_TEST)
1959 GLuint frameBufferObject = 0;
1960 GLuint stencilRenderBuffer = 0;
1962 bool ret = _GlesFboEnableStencil(frameBufferObject, stencilRenderBuffer);
1966 _glesImpl1.glBindFramebufferOES(GL_FRAMEBUFFER_OES, frameBufferObject);
1967 _glesImpl1.glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_STENCIL_ATTACHMENT_OES, GL_RENDERBUFFER_OES, stencilRenderBuffer);
1971 _glesImpl1.glEnable(cap);
1975 _GlEnableClientState_1(GLenum array)
1977 _GLES_CHECK_INTERFACE_VOID_1
1978 _glesImpl1.glEnableClientState(array);
1984 _GLES_CHECK_INTERFACE_VOID_1
1985 _glesImpl1.glFinish();
1991 _GLES_CHECK_INTERFACE_VOID_1
1992 _glesImpl1.glFlush();
1996 _GlFogx_1(GLenum pname, GLfixed param)
1998 _GLES_CHECK_INTERFACE_VOID_1
1999 _glesImpl1.glFogx(pname, param);
2003 _GlFogxv_1(GLenum pname, const GLfixed* pParams)
2005 _GLES_CHECK_INTERFACE_VOID_1
2006 _glesImpl1.glFogxv(pname, pParams);
2010 _GlFrontFace_1(GLenum mode)
2012 _GLES_CHECK_INTERFACE_VOID_1
2013 _glesImpl1.glFrontFace(mode);
2017 _GlFrustumx_1(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
2019 _GLES_CHECK_INTERFACE_VOID_1
2020 _glesImpl1.glFrustumx(left, right, bottom, top, zNear, zFar);
2024 _GlGetBooleanv_1(GLenum pname, GLboolean* pParams)
2026 _GLES_CHECK_INTERFACE_VOID_1
2027 _glesImpl1.glGetBooleanv(pname, pParams);
2031 _GlGetBufferParameteriv_1(GLenum target, GLenum pname, GLint* pParams)
2033 _GLES_CHECK_INTERFACE_VOID_1
2034 _glesImpl1.glGetBufferParameteriv(target, pname, pParams);
2038 _GlGetClipPlanex_1(GLenum pname, GLfixed eqn[4])
2040 _GLES_CHECK_INTERFACE_VOID_1
2041 _glesImpl1.glGetClipPlanex(pname, eqn);
2045 _GlGenBuffers_1(GLsizei n, GLuint* pBuffers)
2047 _GLES_CHECK_INTERFACE_VOID_1
2048 _glesImpl1.glGenBuffers(n, pBuffers);
2052 _GlGenTextures_1(GLsizei n, GLuint* pTextures)
2054 _GLES_CHECK_INTERFACE_VOID_1
2055 _glesImpl1.glGenTextures(n, pTextures);
2061 _GLES_CHECK_INTERFACE_GLENUM_1
2062 return _glesImpl1.glGetError();
2066 _GlGetFixedv_1(GLenum pname, GLfixed* pParams)
2068 _GLES_CHECK_INTERFACE_VOID_1
2069 _glesImpl1.glGetFixedv(pname, pParams);
2073 _GlGetIntegerv_1(GLenum pname, GLint* pParams)
2075 _GLES_CHECK_INTERFACE_VOID_1
2076 _glesImpl1.glGetIntegerv(pname, pParams);
2080 _GlGetLightxv_1(GLenum light, GLenum pname, GLfixed* pParams)
2082 _GLES_CHECK_INTERFACE_VOID_1
2083 _glesImpl1.glGetLightxv(light, pname, pParams);
2087 _GlGetMaterialxv_1(GLenum face, GLenum pname, GLfixed* pParams)
2089 _GLES_CHECK_INTERFACE_VOID_1
2090 _glesImpl1.glGetMaterialxv(face, pname, pParams);
2094 _GlGetPointerv_1(GLenum pname, void** ppParams)
2096 _GLES_CHECK_INTERFACE_VOID_1
2097 _glesImpl1.glGetPointerv(pname, ppParams);
2101 _GlGetString_1(GLenum name)
2103 _GLES_CHECK_INTERFACE_CONST_GLUBYTEP_1
2104 return _glesImpl1.glGetString(name);
2108 _GlGetTexEnviv_1(GLenum env, GLenum pname, GLint* pParams)
2110 _GLES_CHECK_INTERFACE_VOID_1
2111 _glesImpl1.glGetTexEnviv(env, pname, pParams);
2115 _GlGetTexEnvxv_1(GLenum env, GLenum pname, GLfixed* pParams)
2117 _GLES_CHECK_INTERFACE_VOID_1
2118 _glesImpl1.glGetTexEnvxv(env, pname, pParams);
2122 _GlGetTexParameteriv_1(GLenum target, GLenum pname, GLint* pParams)
2124 _GLES_CHECK_INTERFACE_VOID_1
2125 _glesImpl1.glGetTexParameteriv(target, pname, pParams);
2129 _GlGetTexParameterxv_1(GLenum target, GLenum pname, GLfixed* pParams)
2131 _GLES_CHECK_INTERFACE_VOID_1
2132 _glesImpl1.glGetTexParameterxv(target, pname, pParams);
2136 _GlHint_1(GLenum target, GLenum mode)
2138 _GLES_CHECK_INTERFACE_VOID_1
2139 _glesImpl1.glHint(target, mode);
2143 _GlIsBuffer_1(GLuint buffer)
2145 _GLES_CHECK_INTERFACE_GLBOOLEAN_1
2146 return _glesImpl1.glIsBuffer(buffer);
2150 _GlIsEnabled_1(GLenum cap)
2152 _GLES_CHECK_INTERFACE_GLBOOLEAN_1
2153 return _glesImpl1.glIsEnabled(cap);
2157 _GlIsTexture_1(GLuint texture)
2159 _GLES_CHECK_INTERFACE_GLBOOLEAN_1
2160 return _glesImpl1.glIsTexture(texture);
2164 _GlLightModelx_1(GLenum pname, GLfixed param)
2166 _GLES_CHECK_INTERFACE_VOID_1
2167 _glesImpl1.glLightModelx(pname, param);
2171 _GlLightModelxv_1(GLenum pname, const GLfixed* pParams)
2173 _GLES_CHECK_INTERFACE_VOID_1
2174 _glesImpl1.glLightModelxv(pname, pParams);
2178 _GlLightx_1(GLenum light, GLenum pname, GLfixed param)
2180 _GLES_CHECK_INTERFACE_VOID_1
2181 _glesImpl1.glLightx(light, pname, param);
2185 _GlLightxv_1(GLenum light, GLenum pname, const GLfixed* pParams)
2187 _GLES_CHECK_INTERFACE_VOID_1
2188 _glesImpl1.glLightxv(light, pname, pParams);
2192 _GlLineWidthx_1(GLfixed width)
2194 _GLES_CHECK_INTERFACE_VOID_1
2195 _glesImpl1.glLineWidthx(width);
2199 _GlLoadIdentity_1(void)
2201 _GLES_CHECK_INTERFACE_VOID_1
2202 _glesImpl1.glLoadIdentity();
2206 _GlLoadMatrixx_1(const GLfixed* pM)
2208 _GLES_CHECK_INTERFACE_VOID_1
2209 _glesImpl1.glLoadMatrixx(pM);
2213 _GlLogicOp_1(GLenum opcode)
2215 _GLES_CHECK_INTERFACE_VOID_1
2216 _glesImpl1.glLogicOp(opcode);
2220 _GlMaterialx_1(GLenum face, GLenum pname, GLfixed param)
2222 _GLES_CHECK_INTERFACE_VOID_1
2223 _glesImpl1.glMaterialx(face, pname, param);
2227 _GlMaterialxv_1(GLenum face, GLenum pname, const GLfixed* pParams)
2229 _GLES_CHECK_INTERFACE_VOID_1
2230 _glesImpl1.glMaterialxv(face, pname, pParams);
2234 _GlMatrixMode_1(GLenum mode)
2236 _GLES_CHECK_INTERFACE_VOID_1
2237 _glesImpl1.glMatrixMode(mode);
2241 _GlMultMatrixx_1(const GLfixed* pM)
2243 _GLES_CHECK_INTERFACE_VOID_1
2244 _glesImpl1.glMultMatrixx(pM);
2248 _GlMultiTexCoord4x_1(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
2250 _GLES_CHECK_INTERFACE_VOID_1
2251 _glesImpl1.glMultiTexCoord4x(target, s, t, r, q);
2255 _GlNormal3x_1(GLfixed nx, GLfixed ny, GLfixed nz)
2257 _GLES_CHECK_INTERFACE_VOID_1
2258 _glesImpl1.glNormal3x(nx, ny, nz);
2262 _GlNormalPointer_1(GLenum type, GLsizei stride, const GLvoid* pPointer)
2264 _GLES_CHECK_INTERFACE_VOID_1
2265 _glesImpl1.glNormalPointer(type, stride, pPointer);
2269 _GlOrthox_1(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
2271 _GLES_CHECK_INTERFACE_VOID_1
2272 _glesImpl1.glOrthox(left, right, bottom, top, zNear, zFar);
2276 _GlPixelStorei_1(GLenum pname, GLint param)
2278 _GLES_CHECK_INTERFACE_VOID_1
2279 _glesImpl1.glPixelStorei(pname, param);
2283 _GlPointParameterx_1(GLenum pname, GLfixed param)
2285 _GLES_CHECK_INTERFACE_VOID_1
2286 _glesImpl1.glPointParameterx(pname, param);
2290 _GlPointParameterxv_1(GLenum pname, const GLfixed* pParams)
2292 _GLES_CHECK_INTERFACE_VOID_1
2293 _glesImpl1.glPointParameterxv(pname, pParams);
2297 _GlPointSizex_1(GLfixed size)
2299 _GLES_CHECK_INTERFACE_VOID_1
2300 _glesImpl1.glPointSizex(size);
2304 _GlPolygonOffsetx_1(GLfixed factor, GLfixed units)
2306 _GLES_CHECK_INTERFACE_VOID_1
2307 _glesImpl1.glPolygonOffsetx(factor, units);
2311 _GlPopMatrix_1(void)
2313 _GLES_CHECK_INTERFACE_VOID_1
2314 _glesImpl1.glPopMatrix();
2318 _GlPushMatrix_1(void)
2320 _GLES_CHECK_INTERFACE_VOID_1
2321 _glesImpl1.glPushMatrix();
2325 _GlReadPixels_1(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pPixels)
2327 _GLES_CHECK_INTERFACE_VOID_1
2328 _glesImpl1.glReadPixels(x, y, width, height, format, type, pPixels);
2332 _GlRotatex_1(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
2334 _GLES_CHECK_INTERFACE_VOID_1
2335 _glesImpl1.glRotatex(angle, x, y, z);
2339 _GlSampleCoverage_1(GLclampf value, GLboolean invert)
2341 _GLES_CHECK_INTERFACE_VOID_1
2342 _glesImpl1.glSampleCoverage(value, invert);
2346 _GlSampleCoveragex_1(GLclampx value, GLboolean invert)
2348 _GLES_CHECK_INTERFACE_VOID_1
2349 _glesImpl1.glSampleCoveragex(value, invert);
2353 _GlScalex_1(GLfixed x, GLfixed y, GLfixed z)
2355 _GLES_CHECK_INTERFACE_VOID_1
2356 _glesImpl1.glScalex(x, y, z);
2360 _GlScissor_1(GLint x, GLint y, GLsizei width, GLsizei height)
2362 _GLES_CHECK_INTERFACE_VOID_1
2363 _glesImpl1.glScissor(x, y, width, height);
2367 _GlShadeModel_1(GLenum mode)
2369 _GLES_CHECK_INTERFACE_VOID_1
2370 _glesImpl1.glShadeModel(mode);
2374 _GlStencilFunc_1(GLenum func, GLint ref, GLuint mask)
2376 _GLES_CHECK_INTERFACE_VOID_1
2377 _glesImpl1.glStencilFunc(func, ref, mask);
2381 _GlStencilMask_1(GLuint mask)
2383 _GLES_CHECK_INTERFACE_VOID_1
2384 _glesImpl1.glStencilMask(mask);
2388 _GlStencilOp_1(GLenum fail, GLenum zfail, GLenum zpass)
2390 _GLES_CHECK_INTERFACE_VOID_1
2391 _glesImpl1.glStencilOp(fail, zfail, zpass);
2395 _GlTexCoordPointer_1(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer)
2397 _GLES_CHECK_INTERFACE_VOID_1
2398 _glesImpl1.glTexCoordPointer(size, type, stride, pPointer);
2402 _GlTexEnvi_1(GLenum target, GLenum pname, GLint param)
2404 _GLES_CHECK_INTERFACE_VOID_1
2405 _glesImpl1.glTexEnvi(target, pname, param);
2409 _GlTexEnvx_1(GLenum target, GLenum pname, GLfixed param)
2411 _GLES_CHECK_INTERFACE_VOID_1
2412 _glesImpl1.glTexEnvx(target, pname, param);
2416 _GlTexEnviv_1(GLenum target, GLenum pname, const GLint* pParams)
2418 _GLES_CHECK_INTERFACE_VOID_1
2419 _glesImpl1.glTexEnviv(target, pname, pParams);
2423 _GlTexEnvxv_1(GLenum target, GLenum pname, const GLfixed* pParams)
2425 _GLES_CHECK_INTERFACE_VOID_1
2426 _glesImpl1.glTexEnvxv(target, pname, pParams);
2430 _GlTexImage2D_1(GLenum target, GLint level, GLint internalformat,
2431 GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pPixels)
2433 _GLES_CHECK_INTERFACE_VOID_1
2434 _glesImpl1.glTexImage2D(target, level, internalformat, width, height, border, format, type, pPixels);
2438 _GlTexParameteri_1(GLenum target, GLenum pname, GLint param)
2440 _GLES_CHECK_INTERFACE_VOID_1
2441 _glesImpl1.glTexParameteri(target, pname, param);
2445 _GlTexParameterx_1(GLenum target, GLenum pname, GLfixed param)
2447 _GLES_CHECK_INTERFACE_VOID_1
2448 _glesImpl1.glTexParameterx(target, pname, param);
2452 _GlTexParameteriv_1(GLenum target, GLenum pname, const GLint* pParams)
2454 _GLES_CHECK_INTERFACE_VOID_1
2455 _glesImpl1.glTexParameteriv(target, pname, pParams);
2459 _GlTexParameterxv_1(GLenum target, GLenum pname, const GLfixed* pParams)
2461 _GLES_CHECK_INTERFACE_VOID_1
2462 _glesImpl1.glTexParameterxv(target, pname, pParams);
2466 _GlTexSubImage2D_1(GLenum target, GLint level, GLint xoffset, GLint yoffset,
2467 GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pPixels)
2469 _GLES_CHECK_INTERFACE_VOID_1
2470 _glesImpl1.glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pPixels);
2474 _GlTranslatex_1(GLfixed x, GLfixed y, GLfixed z)
2476 _GLES_CHECK_INTERFACE_VOID_1
2477 _glesImpl1.glTranslatex(x, y, z);
2481 _GlVertexPointer_1(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer)
2483 _GLES_CHECK_INTERFACE_VOID_1
2484 _glesImpl1.glVertexPointer(size, type, stride, pPointer);
2488 _GlViewport_1(GLint x, GLint y, GLsizei width, GLsizei height)
2490 _GLES_CHECK_INTERFACE_VOID_1
2491 _glesImpl1.glViewport(x, y, width, height);
2495 _GlPointSizePointerOES_1(GLenum type, GLsizei stride, const GLvoid* pPointer)
2497 _GLES_CHECK_INTERFACE_VOID_1
2498 _glesImpl1.glPointSizePointerOES(type, stride, pPointer);
2502 _GlCurrentPaletteMatrixOES_1(GLuint matrixpaletteindex)
2504 _GLES_CHECK_INTERFACE_VOID_1
2505 _glesImpl1.glCurrentPaletteMatrixOES(matrixpaletteindex);
2509 _GlLoadPaletteFromModelViewMatrixOES_1(void)
2511 _GLES_CHECK_INTERFACE_VOID_1
2512 _glesImpl1.glLoadPaletteFromModelViewMatrixOES();
2516 _GlMatrixIndexPointerOES_1(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer)
2518 _GLES_CHECK_INTERFACE_VOID_1
2519 _glesImpl1.glMatrixIndexPointerOES(size, type, stride, pPointer);
2523 _GlWeightPointerOES_1(GLint size, GLenum type, GLsizei stride, const GLvoid* pPointer)
2525 _GLES_CHECK_INTERFACE_VOID_1
2526 _glesImpl1.glWeightPointerOES(size, type, stride, pPointer);
2529 // FBO is extension functions in OpenGL ES 1.1
2530 //Start of FBO Functions
2532 _GlIsRenderbufferOES_1(GLuint renderbuffer)
2534 _GLES_CHECK_INTERFACE_GLBOOLEAN_1
2535 return _glesImpl1.glIsRenderbufferOES(renderbuffer);
2539 _GlBindRenderbufferOES_1(GLenum target, GLuint renderbuffer)
2541 _GLES_CHECK_INTERFACE_VOID_1
2542 _glesImpl1.glBindRenderbufferOES(target, renderbuffer);
2546 _GlDeleteRenderbuffersOES_1(GLsizei n, const GLuint* pRenderbuffers)
2548 _GLES_CHECK_INTERFACE_VOID_1
2549 _glesImpl1.glDeleteRenderbuffersOES(n, pRenderbuffers);
2553 _GlGenRenderbuffersOES_1(GLsizei n, GLuint* pRenderbuffers)
2555 _GLES_CHECK_INTERFACE_VOID_1
2556 _glesImpl1.glGenRenderbuffersOES(n, pRenderbuffers);
2560 _GlRenderbufferStorageOES_1(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
2562 _GLES_CHECK_INTERFACE_VOID_1
2563 _glesImpl1.glRenderbufferStorageOES(target, internalformat, width, height);
2567 _GlGetRenderbufferParameterivOES_1(GLenum target, GLenum pname, GLint* pParams)
2569 _GLES_CHECK_INTERFACE_VOID_1
2570 _glesImpl1.glGetRenderbufferParameterivOES(target, pname, pParams);
2574 _GlIsFramebufferOES_1(GLuint framebuffer)
2576 _GLES_CHECK_INTERFACE_GLBOOLEAN_1
2577 return _glesImpl1.glIsFramebufferOES(framebuffer);
2581 _GlBindFramebufferOES_1(GLenum target, GLuint framebuffer)
2583 _GLES_CHECK_INTERFACE_VOID_1
2585 #if defined(FGRAPHICS_INTERNAL_USE_FBO)
2586 if (framebuffer == 0)
2588 framebuffer = _GlesGetCurrentFbo();
2592 _glesImpl1.glBindFramebufferOES(target, framebuffer);
2596 _GlDeleteFramebuffersOES_1(GLsizei n, const GLuint* pFramebuffers)
2598 _GLES_CHECK_INTERFACE_VOID_1
2599 _glesImpl1.glDeleteFramebuffersOES(n, pFramebuffers);
2603 _GlGenFramebuffersOES_1(GLsizei n, GLuint* pFramebuffers)
2605 _GLES_CHECK_INTERFACE_VOID_1
2606 _glesImpl1.glGenFramebuffersOES(n, pFramebuffers);
2610 _GlCheckFramebufferStatusOES_1(GLenum target)
2612 _GLES_CHECK_INTERFACE_GLENUM_1
2613 return _glesImpl1.glCheckFramebufferStatusOES(target);
2617 _GlFramebufferRenderbufferOES_1(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
2619 _GLES_CHECK_INTERFACE_VOID_1
2620 _glesImpl1.glFramebufferRenderbufferOES(target, attachment, renderbuffertarget, renderbuffer);
2624 _GlFramebufferTexture2DOES_1(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
2626 _GLES_CHECK_INTERFACE_VOID_1
2627 _glesImpl1.glFramebufferTexture2DOES(target, attachment, textarget, texture, level);
2631 _GlGetFramebufferAttachmentParameterivOES_1(GLenum target, GLenum attachment, GLenum pname, GLint* pParams)
2633 _GLES_CHECK_INTERFACE_VOID_1
2634 _glesImpl1.glGetFramebufferAttachmentParameterivOES(target, attachment, pname, pParams);
2638 _GlGenerateMipmapOES_1(GLenum target)
2640 _GLES_CHECK_INTERFACE_VOID_1
2641 _glesImpl1.glGenerateMipmapOES(target);
2643 //End of FBO Functions
2645 #if defined(FGRAPHICS_INTERNAL_USE_FBO)
2647 _GlesFboGetPowerOf2(int value)
2651 while(result < value)
2660 _GlesFboTerminate_1(GLuint& frameBufferObject, GLuint& depthRenderBuffer, GLuint& stencilRenderBuffer, GLuint& textureId)
2662 _GLES_CHECK_INTERFACE_VOID_1
2663 _glesImpl1.glBindFramebufferOES(GL_FRAMEBUFFER_OES, 0);
2665 if (frameBufferObject != 0)
2667 _glesImpl1.glDeleteFramebuffersOES(1, &frameBufferObject);
2668 frameBufferObject = 0;
2671 if (depthRenderBuffer != 0)
2673 _glesImpl1.glDeleteRenderbuffersOES(1, &depthRenderBuffer);
2674 depthRenderBuffer = 0;
2677 if (stencilRenderBuffer != 0)
2679 _glesImpl1.glDeleteRenderbuffersOES(1, &stencilRenderBuffer);
2680 stencilRenderBuffer = 0;
2685 _glesImpl1.glDeleteTextures(1, &textureId);
2691 _GlesFboInitialize_1(int& fboWidth, int& fboHeight, GLuint& frameBufferObject, GLuint& depthRenderBuffer
2692 , GLuint& stencilRenderBuffer, GLuint colorSize, GLuint depthSize, GLuint stencilSize, GLuint& textureId)
2694 _GLES_CHECK_INTERFACE_GLBOOLEAN_1
2695 const char* pString = (const char*)_glesImpl1.glGetString(GL_EXTENSIONS);
2696 String extensions(pString);
2697 if (!extensions.Contains(L"GL_OES_framebuffer_object"))
2699 SysLog(NID_GRP, "FBO not supported : %ls", extensions.GetPointer());
2703 if (!extensions.Contains(L"GL_OES_texture_npot"))
2705 fboWidth = _GlesFboGetPowerOf2(fboWidth);
2706 fboHeight = _GlesFboGetPowerOf2(fboHeight);
2710 _glesImpl1.glGetIntegerv(GL_MAX_RENDERBUFFER_SIZE_OES, &maxSize);
2711 if (fboWidth > maxSize || fboHeight > maxSize)
2713 SysLog(NID_GRP, "FBO Incompatible size");
2717 _glesImpl1.glEnable(GL_TEXTURE_2D);
2719 _glesImpl1.glGenFramebuffersOES(1, &frameBufferObject);
2720 _glesImpl1.glGenRenderbuffersOES(1, &depthRenderBuffer);
2721 _glesImpl1.glGenRenderbuffersOES(1, &stencilRenderBuffer);
2722 _glesImpl1.glGenTextures(1, &textureId);
2723 if (frameBufferObject == 0 || depthRenderBuffer == 0 || stencilRenderBuffer == 0 || textureId == 0)
2725 SysLog(NID_GRP, "FBO generating failed! fbo:%d depth:%d stencil:%d tex:%d"
2726 , frameBufferObject, depthRenderBuffer, stencilRenderBuffer, textureId);
2727 _GlesFboTerminate_1(frameBufferObject, depthRenderBuffer, stencilRenderBuffer, textureId);
2730 _glesImpl1.glBindTexture(GL_TEXTURE_2D, textureId);
2733 _glesImpl1.glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, fboWidth, fboHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
2737 _glesImpl1.glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, fboWidth, fboHeight, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, NULL);
2739 _glesImpl1.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
2740 _glesImpl1.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
2741 _glesImpl1.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
2742 _glesImpl1.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
2746 GLenum internalFormat = GL_DEPTH_COMPONENT16_OES;
2750 if (extensions.Contains(L"GL_OES_depth32"))
2752 internalFormat = GL_DEPTH_COMPONENT32_OES;
2755 else if (depthSize > 16)
2757 if (extensions.Contains(L"GL_OES_depth24"))
2759 internalFormat = GL_DEPTH_COMPONENT24_OES;
2763 _glesImpl1.glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderBuffer);
2764 _glesImpl1.glRenderbufferStorageOES(GL_RENDERBUFFER_OES, internalFormat, fboWidth, fboHeight);
2767 if (stencilSize > 0)
2769 GLenum internalFormat = 0;
2771 if (extensions.Contains(L"GL_OES_stencil8"))
2773 internalFormat = GL_STENCIL_INDEX8_OES;
2776 if (stencilSize == 1)
2778 if (extensions.Contains(L"GL_OES_stencil1"))
2780 internalFormat = GL_STENCIL_INDEX1_OES;
2783 else if (stencilSize <= 4)
2785 if (extensions.Contains(L"GL_OES_stencil4"))
2787 internalFormat = GL_STENCIL_INDEX4_OES;
2791 if (internalFormat != 0)
2793 _glesImpl1.glBindRenderbufferOES(GL_RENDERBUFFER_OES, stencilRenderBuffer);
2794 _glesImpl1.glRenderbufferStorageOES(GL_RENDERBUFFER_OES, internalFormat, fboWidth, fboHeight);
2798 _glesImpl1.glBindFramebufferOES(GL_FRAMEBUFFER_OES, frameBufferObject);
2799 _glesImpl1.glFramebufferTexture2DOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_TEXTURE_2D, textureId, 0);
2802 _glesImpl1.glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES
2803 , GL_RENDERBUFFER_OES, depthRenderBuffer);
2806 _glesImpl1.glBindTexture(GL_TEXTURE_2D, 0);
2808 GLenum ret = _glesImpl1.glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES);
2809 if (ret != GL_FRAMEBUFFER_COMPLETE_OES)
2811 _GlesFboTerminate_1(frameBufferObject, depthRenderBuffer, stencilRenderBuffer, textureId);
2812 SysLog(NID_GRP, "FBO glCheckFramebufferStatus failed! %#x", (unsigned int)ret);
2820 _GlesFboBinding_1(const GLuint frameBufferObject)
2822 _GLES_CHECK_INTERFACE_VOID_1
2823 _glesImpl1.glBindFramebufferOES(GL_FRAMEBUFFER_OES, frameBufferObject);
2827 _GlesFboSwapBuffers_1(const Frame* pFrame, int fboWidth, int fboHeight, const GLuint frameBufferObject, const GLuint textureId)
2829 _GLES_CHECK_INTERFACE_VOID_1
2830 GLboolean isEnabledCullFace = GL_FALSE;
2831 GLboolean isEnabledStencil = GL_FALSE;
2832 GLboolean isEnabledDepth = GL_FALSE;
2833 GLboolean isEnabledScissor = GL_FALSE;
2834 GLboolean isEnabledBlend = GL_FALSE;
2835 GLboolean isEnabledTexture = GL_FALSE;
2836 GLboolean isEnabledVertexArray = GL_FALSE;
2837 GLboolean isEnabledNormalArray = GL_FALSE;
2838 GLboolean isEnabledColorArray = GL_FALSE;
2839 GLboolean isEnabledTextureCoordArray = GL_FALSE;
2841 isEnabledCullFace = _glesImpl1.glIsEnabled(GL_CULL_FACE);
2842 isEnabledStencil = _glesImpl1.glIsEnabled(GL_STENCIL_TEST);
2843 isEnabledDepth = _glesImpl1.glIsEnabled(GL_DEPTH_TEST);
2844 isEnabledScissor = _glesImpl1.glIsEnabled(GL_SCISSOR_TEST);
2845 isEnabledBlend = _glesImpl1.glIsEnabled(GL_BLEND);
2846 isEnabledNormalArray = _glesImpl1.glIsEnabled(GL_NORMAL_ARRAY);
2847 isEnabledColorArray = _glesImpl1.glIsEnabled(GL_COLOR_ARRAY);
2848 _glesImpl1.glDisable(GL_CULL_FACE);
2849 _glesImpl1.glDisable(GL_STENCIL_TEST);
2850 _glesImpl1.glDisable(GL_DEPTH_TEST);
2851 _glesImpl1.glDisable(GL_SCISSOR_TEST);
2852 _glesImpl1.glDisable(GL_BLEND);
2853 _glesImpl1.glDisableClientState(GL_NORMAL_ARRAY);
2854 _glesImpl1.glDisableClientState(GL_COLOR_ARRAY);
2856 isEnabledTexture = _glesImpl1.glIsEnabled(GL_TEXTURE_2D);
2857 isEnabledVertexArray = _glesImpl1.glIsEnabled(GL_VERTEX_ARRAY);
2858 isEnabledTextureCoordArray = _glesImpl1.glIsEnabled(GL_TEXTURE_COORD_ARRAY);
2859 _glesImpl1.glEnable(GL_TEXTURE_2D);
2860 _glesImpl1.glEnableClientState(GL_VERTEX_ARRAY);
2861 _glesImpl1.glEnableClientState(GL_TEXTURE_COORD_ARRAY);
2863 GLint previousTextureId = 0;
2864 GLint previousMatrixMode = 0;
2865 GLint previousArrayBuffer = 0;
2866 GLint previousElementArrayBuffer = 0;
2867 GLint previousViewport[4] = {0,};
2868 _glesImpl1.glGetIntegerv(GL_TEXTURE_BINDING_2D, &previousTextureId);
2869 _glesImpl1.glGetIntegerv(GL_MATRIX_MODE, &previousMatrixMode);
2870 _glesImpl1.glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &previousArrayBuffer);
2871 _glesImpl1.glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &previousElementArrayBuffer);
2872 _glesImpl1.glGetIntegerv(GL_VIEWPORT, previousViewport);
2874 GLfloat currentColor[4] = {0.0f, };
2875 GLfloat currentNormal[3] = {0.0f, };
2876 _glesImpl1.glGetFloatv(GL_CURRENT_COLOR, currentColor);
2877 _glesImpl1.glGetFloatv(GL_CURRENT_NORMAL, currentNormal);
2878 _glesImpl1.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
2879 _glesImpl1.glNormal3f(0.0f, 0.0f, 1.0f);
2881 _glesImpl1.glBindFramebufferOES(GL_FRAMEBUFFER_OES, 0);
2882 _glesImpl1.glBindTexture( GL_TEXTURE_2D, textureId);
2884 _glesImpl1.glMatrixMode(GL_PROJECTION);
2885 _glesImpl1.glPushMatrix();
2886 _glesImpl1.glLoadIdentity();
2887 _glesImpl1.glOrthof(-1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 1.0f);
2889 _glesImpl1.glMatrixMode(GL_TEXTURE);
2890 _glesImpl1.glPushMatrix();
2891 _glesImpl1.glLoadIdentity();
2893 _glesImpl1.glMatrixMode(GL_MODELVIEW);
2894 _glesImpl1.glPushMatrix();
2895 _glesImpl1.glLoadIdentity();
2901 pFrame->GetBounds(x, y, width, height);
2903 GLfloat ratioX1 = 0.0f;
2904 GLfloat ratioX2 = (GLfloat)width / fboWidth;
2905 GLfloat ratioY1 = 0.0f;
2906 GLfloat ratioY2 = (GLfloat)height / fboHeight;
2908 GLfloat texture[] = {
2915 OrientationStatus orientationStatus = pFrame->GetOrientationStatus();
2916 switch(orientationStatus)
2919 case ORIENTATION_STATUS_NONE:
2920 case ORIENTATION_STATUS_PORTRAIT:
2921 _glesImpl1.glViewport(0, 0, width, height);
2924 case ORIENTATION_STATUS_LANDSCAPE:
2925 texture[0] = ratioX2;
2926 texture[1] = ratioY1;
2927 texture[2] = ratioX2;
2928 texture[3] = ratioY2;
2929 texture[4] = ratioX1;
2930 texture[5] = ratioY1;
2931 texture[6] = ratioX1;
2932 texture[7] = ratioY2;
2933 _glesImpl1.glViewport(0, 0, height, width);
2936 case ORIENTATION_STATUS_PORTRAIT_REVERSE:
2937 texture[0] = ratioX2;
2938 texture[1] = ratioY2;
2939 texture[2] = ratioX1;
2940 texture[3] = ratioY2;
2941 texture[4] = ratioX2;
2942 texture[5] = ratioY1;
2943 texture[6] = ratioX1;
2944 texture[7] = ratioY1;
2945 _glesImpl1.glViewport(0, 0, width, height);
2948 case ORIENTATION_STATUS_LANDSCAPE_REVERSE:
2949 texture[0] = ratioX1;
2950 texture[1] = ratioY2;
2951 texture[2] = ratioX1;
2952 texture[3] = ratioY1;
2953 texture[4] = ratioX2;
2954 texture[5] = ratioY2;
2955 texture[6] = ratioX2;
2956 texture[7] = ratioY1;
2957 _glesImpl1.glViewport(0, 0, height, width);
2961 GLfloat vertex[] = {
2968 _glesImpl1.glBindBuffer(GL_ARRAY_BUFFER, 0);
2969 _glesImpl1.glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
2971 _glesImpl1.glVertexPointer(2, GL_FLOAT, 0, vertex);
2972 _glesImpl1.glTexCoordPointer(2, GL_FLOAT, 0, texture);
2974 _glesImpl1.glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
2976 _glesImpl1.glPopMatrix();
2977 _glesImpl1.glMatrixMode(GL_TEXTURE);
2978 _glesImpl1.glPopMatrix();
2979 _glesImpl1.glMatrixMode(GL_PROJECTION);
2980 _glesImpl1.glPopMatrix();
2982 _glesImpl1.glBindFramebufferOES(GL_FRAMEBUFFER_OES, frameBufferObject);
2983 if (isEnabledCullFace)
2985 _glesImpl1.glEnable(GL_CULL_FACE);
2987 if (isEnabledStencil)
2989 _glesImpl1.glEnable(GL_STENCIL_TEST);
2993 _glesImpl1.glEnable(GL_DEPTH_TEST);
2995 if (isEnabledScissor)
2997 _glesImpl1.glEnable(GL_SCISSOR_TEST);
3001 _glesImpl1.glEnable(GL_BLEND);
3003 if (isEnabledNormalArray)
3005 _glesImpl1.glIsEnabled(GL_NORMAL_ARRAY);
3007 if (isEnabledColorArray)
3009 _glesImpl1.glIsEnabled(GL_COLOR_ARRAY);
3012 if (!isEnabledTexture)
3014 _glesImpl1.glDisable(GL_TEXTURE_2D);
3016 if (!isEnabledVertexArray)
3018 _glesImpl1.glDisableClientState(GL_VERTEX_ARRAY);
3020 if (!isEnabledTextureCoordArray)
3022 _glesImpl1.glDisableClientState(GL_TEXTURE_COORD_ARRAY);
3025 _glesImpl1.glBindTexture( GL_TEXTURE_2D, previousTextureId);
3026 _glesImpl1.glMatrixMode(previousMatrixMode);
3027 _glesImpl1.glBindBuffer(GL_ARRAY_BUFFER, previousArrayBuffer);
3028 _glesImpl1.glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, previousElementArrayBuffer);
3029 _glesImpl1.glViewport(previousViewport[0], previousViewport[1], previousViewport[2], previousViewport[3]);
3030 _glesImpl1.glColor4f(currentColor[0], currentColor[1], currentColor[2], currentColor[3]);
3031 _glesImpl1.glNormal3f(currentNormal[0], currentNormal[1], currentNormal[2]);
3034 #endif //#if defined(FGRAPHICS_INTERNAL_USE_FBO)
3040 #endif //#if !defined(FGRAPHICS_INTERNAL_USE_DYNAMIC_LOADING)
3044 }} // Tizen::Graphics