1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #ifndef _GLES_DISPATCH_H 17 #define _GLES_DISPATCH_H 18 19 #include "gl_proc.h" 20 21 22 struct GLDispatch { 23 glAlphaFunc_t glAlphaFunc; 24 glClearColor_t glClearColor; 25 glClearDepthf_t glClearDepthf; 26 glClipPlanef_t glClipPlanef; 27 glColor4f_t glColor4f; 28 glDepthRangef_t glDepthRangef; 29 glFogf_t glFogf; 30 glFogfv_t glFogfv; 31 glFrustumf_t glFrustumf; 32 glGetClipPlanef_t glGetClipPlanef; 33 glGetFloatv_t glGetFloatv; 34 glGetLightfv_t glGetLightfv; 35 glGetMaterialfv_t glGetMaterialfv; 36 glGetTexEnvfv_t glGetTexEnvfv; 37 glGetTexParameterfv_t glGetTexParameterfv; 38 glLightModelf_t glLightModelf; 39 glLightModelfv_t glLightModelfv; 40 glLightf_t glLightf; 41 glLightfv_t glLightfv; 42 glLineWidth_t glLineWidth; 43 glLoadMatrixf_t glLoadMatrixf; 44 glMaterialf_t glMaterialf; 45 glMaterialfv_t glMaterialfv; 46 glMultMatrixf_t glMultMatrixf; 47 glMultiTexCoord4f_t glMultiTexCoord4f; 48 glNormal3f_t glNormal3f; 49 glOrthof_t glOrthof; 50 glPointParameterf_t glPointParameterf; 51 glPointParameterfv_t glPointParameterfv; 52 glPointSize_t glPointSize; 53 glPolygonOffset_t glPolygonOffset; 54 glRotatef_t glRotatef; 55 glScalef_t glScalef; 56 glTexEnvf_t glTexEnvf; 57 glTexEnvfv_t glTexEnvfv; 58 glTexParameterf_t glTexParameterf; 59 glTexParameterfv_t glTexParameterfv; 60 glTranslatef_t glTranslatef; 61 glActiveTexture_t glActiveTexture; 62 glAlphaFuncx_t glAlphaFuncx; 63 glBindBuffer_t glBindBuffer; 64 glBindTexture_t glBindTexture; 65 glBlendFunc_t glBlendFunc; 66 glBufferData_t glBufferData; 67 glBufferSubData_t glBufferSubData; 68 glClear_t glClear; 69 glClearColorx_t glClearColorx; 70 glClearDepthx_t glClearDepthx; 71 glClearStencil_t glClearStencil; 72 glClientActiveTexture_t glClientActiveTexture; 73 glClipPlanex_t glClipPlanex; 74 glColor4ub_t glColor4ub; 75 glColor4x_t glColor4x; 76 glColorMask_t glColorMask; 77 glColorPointer_t glColorPointer; 78 glCompressedTexImage2D_t glCompressedTexImage2D; 79 glCompressedTexSubImage2D_t glCompressedTexSubImage2D; 80 glCopyTexImage2D_t glCopyTexImage2D; 81 glCopyTexSubImage2D_t glCopyTexSubImage2D; 82 glCullFace_t glCullFace; 83 glDeleteBuffers_t glDeleteBuffers; 84 glDeleteTextures_t glDeleteTextures; 85 glDepthFunc_t glDepthFunc; 86 glDepthMask_t glDepthMask; 87 glDepthRangex_t glDepthRangex; 88 glDisable_t glDisable; 89 glDisableClientState_t glDisableClientState; 90 glDrawArrays_t glDrawArrays; 91 glDrawElements_t glDrawElements; 92 glEnable_t glEnable; 93 glEnableClientState_t glEnableClientState; 94 glFinish_t glFinish; 95 glFlush_t glFlush; 96 glFogx_t glFogx; 97 glFogxv_t glFogxv; 98 glFrontFace_t glFrontFace; 99 glFrustumx_t glFrustumx; 100 glGetBooleanv_t glGetBooleanv; 101 glGetBufferParameteriv_t glGetBufferParameteriv; 102 glGetClipPlanex_t glGetClipPlanex; 103 glGenBuffers_t glGenBuffers; 104 glGenTextures_t glGenTextures; 105 glGetError_t glGetError; 106 glGetFixedv_t glGetFixedv; 107 glGetIntegerv_t glGetIntegerv; 108 glGetLightxv_t glGetLightxv; 109 glGetMaterialxv_t glGetMaterialxv; 110 glGetPointerv_t glGetPointerv; 111 glGetString_t glGetString; 112 glGetTexEnviv_t glGetTexEnviv; 113 glGetTexEnvxv_t glGetTexEnvxv; 114 glGetTexParameteriv_t glGetTexParameteriv; 115 glGetTexParameterxv_t glGetTexParameterxv; 116 glHint_t glHint; 117 glIsBuffer_t glIsBuffer; 118 glIsEnabled_t glIsEnabled; 119 glIsTexture_t glIsTexture; 120 glLightModelx_t glLightModelx; 121 glLightModelxv_t glLightModelxv; 122 glLightx_t glLightx; 123 glLightxv_t glLightxv; 124 glLineWidthx_t glLineWidthx; 125 glLoadIdentity_t glLoadIdentity; 126 glLoadMatrixx_t glLoadMatrixx; 127 glLogicOp_t glLogicOp; 128 glMaterialx_t glMaterialx; 129 glMaterialxv_t glMaterialxv; 130 glMatrixMode_t glMatrixMode; 131 glMultMatrixx_t glMultMatrixx; 132 glMultiTexCoord4x_t glMultiTexCoord4x; 133 glNormal3x_t glNormal3x; 134 glNormalPointer_t glNormalPointer; 135 glOrthox_t glOrthox; 136 glPixelStorei_t glPixelStorei; 137 glPointParameterx_t glPointParameterx; 138 glPointParameterxv_t glPointParameterxv; 139 glPointSizex_t glPointSizex; 140 glPolygonOffsetx_t glPolygonOffsetx; 141 glPopMatrix_t glPopMatrix; 142 glPushMatrix_t glPushMatrix; 143 glReadPixels_t glReadPixels; 144 glRotatex_t glRotatex; 145 glSampleCoverage_t glSampleCoverage; 146 glSampleCoveragex_t glSampleCoveragex; 147 glScalex_t glScalex; 148 glScissor_t glScissor; 149 glShadeModel_t glShadeModel; 150 glStencilFunc_t glStencilFunc; 151 glStencilMask_t glStencilMask; 152 glStencilOp_t glStencilOp; 153 glTexCoordPointer_t glTexCoordPointer; 154 glTexEnvi_t glTexEnvi; 155 glTexEnvx_t glTexEnvx; 156 glTexEnviv_t glTexEnviv; 157 glTexEnvxv_t glTexEnvxv; 158 glTexImage2D_t glTexImage2D; 159 glTexParameteri_t glTexParameteri; 160 glTexParameterx_t glTexParameterx; 161 glTexParameteriv_t glTexParameteriv; 162 glTexParameterxv_t glTexParameterxv; 163 glTexSubImage2D_t glTexSubImage2D; 164 glTranslatex_t glTranslatex; 165 glVertexPointer_t glVertexPointer; 166 glViewport_t glViewport; 167 glPointSizePointerOES_t glPointSizePointerOES; 168 glBlendEquationSeparateOES_t glBlendEquationSeparateOES; 169 glBlendFuncSeparateOES_t glBlendFuncSeparateOES; 170 glBlendEquationOES_t glBlendEquationOES; 171 glDrawTexsOES_t glDrawTexsOES; 172 glDrawTexiOES_t glDrawTexiOES; 173 glDrawTexxOES_t glDrawTexxOES; 174 glDrawTexsvOES_t glDrawTexsvOES; 175 glDrawTexivOES_t glDrawTexivOES; 176 glDrawTexxvOES_t glDrawTexxvOES; 177 glDrawTexfOES_t glDrawTexfOES; 178 glDrawTexfvOES_t glDrawTexfvOES; 179 glEGLImageTargetTexture2DOES_t glEGLImageTargetTexture2DOES; 180 glEGLImageTargetRenderbufferStorageOES_t glEGLImageTargetRenderbufferStorageOES; 181 glAlphaFuncxOES_t glAlphaFuncxOES; 182 glClearColorxOES_t glClearColorxOES; 183 glClearDepthxOES_t glClearDepthxOES; 184 glClipPlanexOES_t glClipPlanexOES; 185 glColor4xOES_t glColor4xOES; 186 glDepthRangexOES_t glDepthRangexOES; 187 glFogxOES_t glFogxOES; 188 glFogxvOES_t glFogxvOES; 189 glFrustumxOES_t glFrustumxOES; 190 glGetClipPlanexOES_t glGetClipPlanexOES; 191 glGetFixedvOES_t glGetFixedvOES; 192 glGetLightxvOES_t glGetLightxvOES; 193 glGetMaterialxvOES_t glGetMaterialxvOES; 194 glGetTexEnvxvOES_t glGetTexEnvxvOES; 195 glGetTexParameterxvOES_t glGetTexParameterxvOES; 196 glLightModelxOES_t glLightModelxOES; 197 glLightModelxvOES_t glLightModelxvOES; 198 glLightxOES_t glLightxOES; 199 glLightxvOES_t glLightxvOES; 200 glLineWidthxOES_t glLineWidthxOES; 201 glLoadMatrixxOES_t glLoadMatrixxOES; 202 glMaterialxOES_t glMaterialxOES; 203 glMaterialxvOES_t glMaterialxvOES; 204 glMultMatrixxOES_t glMultMatrixxOES; 205 glMultiTexCoord4xOES_t glMultiTexCoord4xOES; 206 glNormal3xOES_t glNormal3xOES; 207 glOrthoxOES_t glOrthoxOES; 208 glPointParameterxOES_t glPointParameterxOES; 209 glPointParameterxvOES_t glPointParameterxvOES; 210 glPointSizexOES_t glPointSizexOES; 211 glPolygonOffsetxOES_t glPolygonOffsetxOES; 212 glRotatexOES_t glRotatexOES; 213 glSampleCoveragexOES_t glSampleCoveragexOES; 214 glScalexOES_t glScalexOES; 215 glTexEnvxOES_t glTexEnvxOES; 216 glTexEnvxvOES_t glTexEnvxvOES; 217 glTexParameterxOES_t glTexParameterxOES; 218 glTexParameterxvOES_t glTexParameterxvOES; 219 glTranslatexOES_t glTranslatexOES; 220 glIsRenderbufferOES_t glIsRenderbufferOES; 221 glBindRenderbufferOES_t glBindRenderbufferOES; 222 glDeleteRenderbuffersOES_t glDeleteRenderbuffersOES; 223 glGenRenderbuffersOES_t glGenRenderbuffersOES; 224 glRenderbufferStorageOES_t glRenderbufferStorageOES; 225 glGetRenderbufferParameterivOES_t glGetRenderbufferParameterivOES; 226 glIsFramebufferOES_t glIsFramebufferOES; 227 glBindFramebufferOES_t glBindFramebufferOES; 228 glDeleteFramebuffersOES_t glDeleteFramebuffersOES; 229 glGenFramebuffersOES_t glGenFramebuffersOES; 230 glCheckFramebufferStatusOES_t glCheckFramebufferStatusOES; 231 glFramebufferRenderbufferOES_t glFramebufferRenderbufferOES; 232 glFramebufferTexture2DOES_t glFramebufferTexture2DOES; 233 glGetFramebufferAttachmentParameterivOES_t glGetFramebufferAttachmentParameterivOES; 234 glGenerateMipmapOES_t glGenerateMipmapOES; 235 glMapBufferOES_t glMapBufferOES; 236 glUnmapBufferOES_t glUnmapBufferOES; 237 glGetBufferPointervOES_t glGetBufferPointervOES; 238 glCurrentPaletteMatrixOES_t glCurrentPaletteMatrixOES; 239 glLoadPaletteFromModelViewMatrixOES_t glLoadPaletteFromModelViewMatrixOES; 240 glMatrixIndexPointerOES_t glMatrixIndexPointerOES; 241 glWeightPointerOES_t glWeightPointerOES; 242 glQueryMatrixxOES_t glQueryMatrixxOES; 243 glDepthRangefOES_t glDepthRangefOES; 244 glFrustumfOES_t glFrustumfOES; 245 glOrthofOES_t glOrthofOES; 246 glClipPlanefOES_t glClipPlanefOES; 247 glGetClipPlanefOES_t glGetClipPlanefOES; 248 glClearDepthfOES_t glClearDepthfOES; 249 glTexGenfOES_t glTexGenfOES; 250 glTexGenfvOES_t glTexGenfvOES; 251 glTexGeniOES_t glTexGeniOES; 252 glTexGenivOES_t glTexGenivOES; 253 glTexGenxOES_t glTexGenxOES; 254 glTexGenxvOES_t glTexGenxvOES; 255 glGetTexGenfvOES_t glGetTexGenfvOES; 256 glGetTexGenivOES_t glGetTexGenivOES; 257 glGetTexGenxvOES_t glGetTexGenxvOES; 258 glBindVertexArrayOES_t glBindVertexArrayOES; 259 glDeleteVertexArraysOES_t glDeleteVertexArraysOES; 260 glGenVertexArraysOES_t glGenVertexArraysOES; 261 glIsVertexArrayOES_t glIsVertexArrayOES; 262 glDiscardFramebufferEXT_t glDiscardFramebufferEXT; 263 glMultiDrawArraysEXT_t glMultiDrawArraysEXT; 264 glMultiDrawElementsEXT_t glMultiDrawElementsEXT; 265 glClipPlanefIMG_t glClipPlanefIMG; 266 glClipPlanexIMG_t glClipPlanexIMG; 267 glRenderbufferStorageMultisampleIMG_t glRenderbufferStorageMultisampleIMG; 268 glFramebufferTexture2DMultisampleIMG_t glFramebufferTexture2DMultisampleIMG; 269 glDeleteFencesNV_t glDeleteFencesNV; 270 glGenFencesNV_t glGenFencesNV; 271 glIsFenceNV_t glIsFenceNV; 272 glTestFenceNV_t glTestFenceNV; 273 glGetFenceivNV_t glGetFenceivNV; 274 glFinishFenceNV_t glFinishFenceNV; 275 glSetFenceNV_t glSetFenceNV; 276 glGetDriverControlsQCOM_t glGetDriverControlsQCOM; 277 glGetDriverControlStringQCOM_t glGetDriverControlStringQCOM; 278 glEnableDriverControlQCOM_t glEnableDriverControlQCOM; 279 glDisableDriverControlQCOM_t glDisableDriverControlQCOM; 280 glExtGetTexturesQCOM_t glExtGetTexturesQCOM; 281 glExtGetBuffersQCOM_t glExtGetBuffersQCOM; 282 glExtGetRenderbuffersQCOM_t glExtGetRenderbuffersQCOM; 283 glExtGetFramebuffersQCOM_t glExtGetFramebuffersQCOM; 284 glExtGetTexLevelParameterivQCOM_t glExtGetTexLevelParameterivQCOM; 285 glExtTexObjectStateOverrideiQCOM_t glExtTexObjectStateOverrideiQCOM; 286 glExtGetTexSubImageQCOM_t glExtGetTexSubImageQCOM; 287 glExtGetBufferPointervQCOM_t glExtGetBufferPointervQCOM; 288 glExtGetShadersQCOM_t glExtGetShadersQCOM; 289 glExtGetProgramsQCOM_t glExtGetProgramsQCOM; 290 glExtIsProgramBinaryQCOM_t glExtIsProgramBinaryQCOM; 291 glExtGetProgramBinarySourceQCOM_t glExtGetProgramBinarySourceQCOM; 292 glStartTilingQCOM_t glStartTilingQCOM; 293 glEndTilingQCOM_t glEndTilingQCOM; 294 }; 295 296 bool init_gl_dispatch(); 297 void *gl_dispatch_get_proc_func(const char *name, void *userData); 298 299 extern GLDispatch s_gl; 300 #endif 301