C++程序  |  301行  |  11.35 KB

/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _GLES_DISPATCH_H
#define _GLES_DISPATCH_H

#include "gl_proc.h"


struct GLDispatch {
    glAlphaFunc_t glAlphaFunc;
    glClearColor_t glClearColor;
    glClearDepthf_t glClearDepthf;
    glClipPlanef_t glClipPlanef;
    glColor4f_t glColor4f;
    glDepthRangef_t glDepthRangef;
    glFogf_t glFogf;
    glFogfv_t glFogfv;
    glFrustumf_t glFrustumf;
    glGetClipPlanef_t glGetClipPlanef;
    glGetFloatv_t glGetFloatv;
    glGetLightfv_t glGetLightfv;
    glGetMaterialfv_t glGetMaterialfv;
    glGetTexEnvfv_t glGetTexEnvfv;
    glGetTexParameterfv_t glGetTexParameterfv;
    glLightModelf_t glLightModelf;
    glLightModelfv_t glLightModelfv;
    glLightf_t glLightf;
    glLightfv_t glLightfv;
    glLineWidth_t glLineWidth;
    glLoadMatrixf_t glLoadMatrixf;
    glMaterialf_t glMaterialf;
    glMaterialfv_t glMaterialfv;
    glMultMatrixf_t glMultMatrixf;
    glMultiTexCoord4f_t glMultiTexCoord4f;
    glNormal3f_t glNormal3f;
    glOrthof_t glOrthof;
    glPointParameterf_t glPointParameterf;
    glPointParameterfv_t glPointParameterfv;
    glPointSize_t glPointSize;
    glPolygonOffset_t glPolygonOffset;
    glRotatef_t glRotatef;
    glScalef_t glScalef;
    glTexEnvf_t glTexEnvf;
    glTexEnvfv_t glTexEnvfv;
    glTexParameterf_t glTexParameterf;
    glTexParameterfv_t glTexParameterfv;
    glTranslatef_t glTranslatef;
    glActiveTexture_t glActiveTexture;
    glAlphaFuncx_t glAlphaFuncx;
    glBindBuffer_t glBindBuffer;
    glBindTexture_t glBindTexture;
    glBlendFunc_t glBlendFunc;
    glBufferData_t glBufferData;
    glBufferSubData_t glBufferSubData;
    glClear_t glClear;
    glClearColorx_t glClearColorx;
    glClearDepthx_t glClearDepthx;
    glClearStencil_t glClearStencil;
    glClientActiveTexture_t glClientActiveTexture;
    glClipPlanex_t glClipPlanex;
    glColor4ub_t glColor4ub;
    glColor4x_t glColor4x;
    glColorMask_t glColorMask;
    glColorPointer_t glColorPointer;
    glCompressedTexImage2D_t glCompressedTexImage2D;
    glCompressedTexSubImage2D_t glCompressedTexSubImage2D;
    glCopyTexImage2D_t glCopyTexImage2D;
    glCopyTexSubImage2D_t glCopyTexSubImage2D;
    glCullFace_t glCullFace;
    glDeleteBuffers_t glDeleteBuffers;
    glDeleteTextures_t glDeleteTextures;
    glDepthFunc_t glDepthFunc;
    glDepthMask_t glDepthMask;
    glDepthRangex_t glDepthRangex;
    glDisable_t glDisable;
    glDisableClientState_t glDisableClientState;
    glDrawArrays_t glDrawArrays;
    glDrawElements_t glDrawElements;
    glEnable_t glEnable;
    glEnableClientState_t glEnableClientState;
    glFinish_t glFinish;
    glFlush_t glFlush;
    glFogx_t glFogx;
    glFogxv_t glFogxv;
    glFrontFace_t glFrontFace;
    glFrustumx_t glFrustumx;
    glGetBooleanv_t glGetBooleanv;
    glGetBufferParameteriv_t glGetBufferParameteriv;
    glGetClipPlanex_t glGetClipPlanex;
    glGenBuffers_t glGenBuffers;
    glGenTextures_t glGenTextures;
    glGetError_t glGetError;
    glGetFixedv_t glGetFixedv;
    glGetIntegerv_t glGetIntegerv;
    glGetLightxv_t glGetLightxv;
    glGetMaterialxv_t glGetMaterialxv;
    glGetPointerv_t glGetPointerv;
    glGetString_t glGetString;
    glGetTexEnviv_t glGetTexEnviv;
    glGetTexEnvxv_t glGetTexEnvxv;
    glGetTexParameteriv_t glGetTexParameteriv;
    glGetTexParameterxv_t glGetTexParameterxv;
    glHint_t glHint;
    glIsBuffer_t glIsBuffer;
    glIsEnabled_t glIsEnabled;
    glIsTexture_t glIsTexture;
    glLightModelx_t glLightModelx;
    glLightModelxv_t glLightModelxv;
    glLightx_t glLightx;
    glLightxv_t glLightxv;
    glLineWidthx_t glLineWidthx;
    glLoadIdentity_t glLoadIdentity;
    glLoadMatrixx_t glLoadMatrixx;
    glLogicOp_t glLogicOp;
    glMaterialx_t glMaterialx;
    glMaterialxv_t glMaterialxv;
    glMatrixMode_t glMatrixMode;
    glMultMatrixx_t glMultMatrixx;
    glMultiTexCoord4x_t glMultiTexCoord4x;
    glNormal3x_t glNormal3x;
    glNormalPointer_t glNormalPointer;
    glOrthox_t glOrthox;
    glPixelStorei_t glPixelStorei;
    glPointParameterx_t glPointParameterx;
    glPointParameterxv_t glPointParameterxv;
    glPointSizex_t glPointSizex;
    glPolygonOffsetx_t glPolygonOffsetx;
    glPopMatrix_t glPopMatrix;
    glPushMatrix_t glPushMatrix;
    glReadPixels_t glReadPixels;
    glRotatex_t glRotatex;
    glSampleCoverage_t glSampleCoverage;
    glSampleCoveragex_t glSampleCoveragex;
    glScalex_t glScalex;
    glScissor_t glScissor;
    glShadeModel_t glShadeModel;
    glStencilFunc_t glStencilFunc;
    glStencilMask_t glStencilMask;
    glStencilOp_t glStencilOp;
    glTexCoordPointer_t glTexCoordPointer;
    glTexEnvi_t glTexEnvi;
    glTexEnvx_t glTexEnvx;
    glTexEnviv_t glTexEnviv;
    glTexEnvxv_t glTexEnvxv;
    glTexImage2D_t glTexImage2D;
    glTexParameteri_t glTexParameteri;
    glTexParameterx_t glTexParameterx;
    glTexParameteriv_t glTexParameteriv;
    glTexParameterxv_t glTexParameterxv;
    glTexSubImage2D_t glTexSubImage2D;
    glTranslatex_t glTranslatex;
    glVertexPointer_t glVertexPointer;
    glViewport_t glViewport;
    glPointSizePointerOES_t glPointSizePointerOES;
    glBlendEquationSeparateOES_t glBlendEquationSeparateOES;
    glBlendFuncSeparateOES_t glBlendFuncSeparateOES;
    glBlendEquationOES_t glBlendEquationOES;
    glDrawTexsOES_t glDrawTexsOES;
    glDrawTexiOES_t glDrawTexiOES;
    glDrawTexxOES_t glDrawTexxOES;
    glDrawTexsvOES_t glDrawTexsvOES;
    glDrawTexivOES_t glDrawTexivOES;
    glDrawTexxvOES_t glDrawTexxvOES;
    glDrawTexfOES_t glDrawTexfOES;
    glDrawTexfvOES_t glDrawTexfvOES;
    glEGLImageTargetTexture2DOES_t glEGLImageTargetTexture2DOES;
    glEGLImageTargetRenderbufferStorageOES_t glEGLImageTargetRenderbufferStorageOES;
    glAlphaFuncxOES_t glAlphaFuncxOES;
    glClearColorxOES_t glClearColorxOES;
    glClearDepthxOES_t glClearDepthxOES;
    glClipPlanexOES_t glClipPlanexOES;
    glColor4xOES_t glColor4xOES;
    glDepthRangexOES_t glDepthRangexOES;
    glFogxOES_t glFogxOES;
    glFogxvOES_t glFogxvOES;
    glFrustumxOES_t glFrustumxOES;
    glGetClipPlanexOES_t glGetClipPlanexOES;
    glGetFixedvOES_t glGetFixedvOES;
    glGetLightxvOES_t glGetLightxvOES;
    glGetMaterialxvOES_t glGetMaterialxvOES;
    glGetTexEnvxvOES_t glGetTexEnvxvOES;
    glGetTexParameterxvOES_t glGetTexParameterxvOES;
    glLightModelxOES_t glLightModelxOES;
    glLightModelxvOES_t glLightModelxvOES;
    glLightxOES_t glLightxOES;
    glLightxvOES_t glLightxvOES;
    glLineWidthxOES_t glLineWidthxOES;
    glLoadMatrixxOES_t glLoadMatrixxOES;
    glMaterialxOES_t glMaterialxOES;
    glMaterialxvOES_t glMaterialxvOES;
    glMultMatrixxOES_t glMultMatrixxOES;
    glMultiTexCoord4xOES_t glMultiTexCoord4xOES;
    glNormal3xOES_t glNormal3xOES;
    glOrthoxOES_t glOrthoxOES;
    glPointParameterxOES_t glPointParameterxOES;
    glPointParameterxvOES_t glPointParameterxvOES;
    glPointSizexOES_t glPointSizexOES;
    glPolygonOffsetxOES_t glPolygonOffsetxOES;
    glRotatexOES_t glRotatexOES;
    glSampleCoveragexOES_t glSampleCoveragexOES;
    glScalexOES_t glScalexOES;
    glTexEnvxOES_t glTexEnvxOES;
    glTexEnvxvOES_t glTexEnvxvOES;
    glTexParameterxOES_t glTexParameterxOES;
    glTexParameterxvOES_t glTexParameterxvOES;
    glTranslatexOES_t glTranslatexOES;
    glIsRenderbufferOES_t glIsRenderbufferOES;
    glBindRenderbufferOES_t glBindRenderbufferOES;
    glDeleteRenderbuffersOES_t glDeleteRenderbuffersOES;
    glGenRenderbuffersOES_t glGenRenderbuffersOES;
    glRenderbufferStorageOES_t glRenderbufferStorageOES;
    glGetRenderbufferParameterivOES_t glGetRenderbufferParameterivOES;
    glIsFramebufferOES_t glIsFramebufferOES;
    glBindFramebufferOES_t glBindFramebufferOES;
    glDeleteFramebuffersOES_t glDeleteFramebuffersOES;
    glGenFramebuffersOES_t glGenFramebuffersOES;
    glCheckFramebufferStatusOES_t glCheckFramebufferStatusOES;
    glFramebufferRenderbufferOES_t glFramebufferRenderbufferOES;
    glFramebufferTexture2DOES_t glFramebufferTexture2DOES;
    glGetFramebufferAttachmentParameterivOES_t glGetFramebufferAttachmentParameterivOES;
    glGenerateMipmapOES_t glGenerateMipmapOES;
    glMapBufferOES_t glMapBufferOES;
    glUnmapBufferOES_t glUnmapBufferOES;
    glGetBufferPointervOES_t glGetBufferPointervOES;
    glCurrentPaletteMatrixOES_t glCurrentPaletteMatrixOES;
    glLoadPaletteFromModelViewMatrixOES_t glLoadPaletteFromModelViewMatrixOES;
    glMatrixIndexPointerOES_t glMatrixIndexPointerOES;
    glWeightPointerOES_t glWeightPointerOES;
    glQueryMatrixxOES_t glQueryMatrixxOES;
    glDepthRangefOES_t glDepthRangefOES;
    glFrustumfOES_t glFrustumfOES;
    glOrthofOES_t glOrthofOES;
    glClipPlanefOES_t glClipPlanefOES;
    glGetClipPlanefOES_t glGetClipPlanefOES;
    glClearDepthfOES_t glClearDepthfOES;
    glTexGenfOES_t glTexGenfOES;
    glTexGenfvOES_t glTexGenfvOES;
    glTexGeniOES_t glTexGeniOES;
    glTexGenivOES_t glTexGenivOES;
    glTexGenxOES_t glTexGenxOES;
    glTexGenxvOES_t glTexGenxvOES;
    glGetTexGenfvOES_t glGetTexGenfvOES;
    glGetTexGenivOES_t glGetTexGenivOES;
    glGetTexGenxvOES_t glGetTexGenxvOES;
    glBindVertexArrayOES_t glBindVertexArrayOES;
    glDeleteVertexArraysOES_t glDeleteVertexArraysOES;
    glGenVertexArraysOES_t glGenVertexArraysOES;
    glIsVertexArrayOES_t glIsVertexArrayOES;
    glDiscardFramebufferEXT_t glDiscardFramebufferEXT;
    glMultiDrawArraysEXT_t glMultiDrawArraysEXT;
    glMultiDrawElementsEXT_t glMultiDrawElementsEXT;
    glClipPlanefIMG_t glClipPlanefIMG;
    glClipPlanexIMG_t glClipPlanexIMG;
    glRenderbufferStorageMultisampleIMG_t glRenderbufferStorageMultisampleIMG;
    glFramebufferTexture2DMultisampleIMG_t glFramebufferTexture2DMultisampleIMG;
    glDeleteFencesNV_t glDeleteFencesNV;
    glGenFencesNV_t glGenFencesNV;
    glIsFenceNV_t glIsFenceNV;
    glTestFenceNV_t glTestFenceNV;
    glGetFenceivNV_t glGetFenceivNV;
    glFinishFenceNV_t glFinishFenceNV;
    glSetFenceNV_t glSetFenceNV;
    glGetDriverControlsQCOM_t glGetDriverControlsQCOM;
    glGetDriverControlStringQCOM_t glGetDriverControlStringQCOM;
    glEnableDriverControlQCOM_t glEnableDriverControlQCOM;
    glDisableDriverControlQCOM_t glDisableDriverControlQCOM;
    glExtGetTexturesQCOM_t glExtGetTexturesQCOM;
    glExtGetBuffersQCOM_t glExtGetBuffersQCOM;
    glExtGetRenderbuffersQCOM_t glExtGetRenderbuffersQCOM;
    glExtGetFramebuffersQCOM_t glExtGetFramebuffersQCOM;
    glExtGetTexLevelParameterivQCOM_t glExtGetTexLevelParameterivQCOM;
    glExtTexObjectStateOverrideiQCOM_t glExtTexObjectStateOverrideiQCOM;
    glExtGetTexSubImageQCOM_t glExtGetTexSubImageQCOM;
    glExtGetBufferPointervQCOM_t glExtGetBufferPointervQCOM;
    glExtGetShadersQCOM_t glExtGetShadersQCOM;
    glExtGetProgramsQCOM_t glExtGetProgramsQCOM;
    glExtIsProgramBinaryQCOM_t glExtIsProgramBinaryQCOM;
    glExtGetProgramBinarySourceQCOM_t glExtGetProgramBinarySourceQCOM;
    glStartTilingQCOM_t glStartTilingQCOM;
    glEndTilingQCOM_t glEndTilingQCOM;
};

bool init_gl_dispatch();
void *gl_dispatch_get_proc_func(const char *name, void *userData);

extern GLDispatch s_gl;
#endif