am a8a402cf: am 5b701a29: Merge "GLES2 translator:"

* commit 'a8a402cfd74edee5efaa32547ef5ee8550b2e135':
  GLES2 translator:
This commit is contained in:
David Turner
2011-07-06 07:46:16 -07:00
committed by Android Git Automerger
3 changed files with 46 additions and 85 deletions

View File

@@ -164,7 +164,7 @@ GL_APICALL void GL_APIENTRY glBindFramebuffer(GLenum target, GLuint framebuffer
globalFrameBufferName = thrd->shareGroup->getGlobalName(FRAMEBUFFER,framebuffer);
}
}
ctx->dispatcher().glBindFramebuffer(target,globalFrameBufferName);
ctx->dispatcher().glBindFramebufferEXT(target,globalFrameBufferName);
}
GL_APICALL void GL_APIENTRY glBindRenderbuffer(GLenum target, GLuint renderbuffer){
@@ -180,7 +180,7 @@ GL_APICALL void GL_APIENTRY glBindRenderbuffer(GLenum target, GLuint renderbuff
globalRenderBufferName = thrd->shareGroup->getGlobalName(RENDERBUFFER,renderbuffer);
}
}
ctx->dispatcher().glBindRenderbuffer(target,globalRenderBufferName);
ctx->dispatcher().glBindRenderbufferEXT(target,globalRenderBufferName);
}
GL_APICALL void GL_APIENTRY glBindTexture(GLenum target, GLuint texture){
@@ -248,7 +248,7 @@ GL_APICALL void GL_APIENTRY glBufferSubData(GLenum target, GLintptr offset, GLs
GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus(GLenum target){
GET_CTX_RET(GL_FRAMEBUFFER_COMPLETE);
RET_AND_SET_ERROR_IF(!GLESv2Validate::framebufferTarget(target),GL_INVALID_ENUM,GL_FRAMEBUFFER_COMPLETE);
return ctx->dispatcher().glCheckFramebufferStatus(target);
return ctx->dispatcher().glCheckFramebufferStatusEXT(target);
}
GL_APICALL void GL_APIENTRY glClear(GLbitfield mask){
@@ -358,7 +358,7 @@ GL_APICALL void GL_APIENTRY glDeleteFramebuffers(GLsizei n, const GLuint* frame
for(int i=0; i < n; i++){
const GLuint globalFrameBufferName = thrd->shareGroup->getGlobalName(FRAMEBUFFER,framebuffers[i]);
thrd->shareGroup->deleteName(FRAMEBUFFER,framebuffers[i]);
ctx->dispatcher().glDeleteFramebuffers(1,&globalFrameBufferName);
ctx->dispatcher().glDeleteFramebuffersEXT(1,&globalFrameBufferName);
}
}
}
@@ -370,7 +370,7 @@ GL_APICALL void GL_APIENTRY glDeleteRenderbuffers(GLsizei n, const GLuint* rend
for(int i=0; i < n; i++){
const GLuint globalRenderBufferName = thrd->shareGroup->getGlobalName(RENDERBUFFER,renderbuffers[i]);
thrd->shareGroup->deleteName(RENDERBUFFER,renderbuffers[i]);
ctx->dispatcher().glDeleteRenderbuffers(1,&globalRenderBufferName);
ctx->dispatcher().glDeleteRenderbuffersEXT(1,&globalRenderBufferName);
}
}
}
@@ -496,7 +496,7 @@ GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer(GLenum target, GLenum att
if(thrd->shareGroup.Ptr()) {
GLuint globalRenderbufferName = thrd->shareGroup->getGlobalName(RENDERBUFFER,renderbuffer);
ctx->dispatcher().glFramebufferRenderbuffer(target,attachment,renderbuffertarget,globalRenderbufferName);
ctx->dispatcher().glFramebufferRenderbufferEXT(target,attachment,renderbuffertarget,globalRenderbufferName);
}
}
@@ -510,7 +510,7 @@ GL_APICALL void GL_APIENTRY glFramebufferTexture2D(GLenum target, GLenum attach
if(thrd->shareGroup.Ptr()) {
GLuint globalTextureName = thrd->shareGroup->getGlobalName(TEXTURE,texture);
ctx->dispatcher().glFramebufferTexture2D(target,attachment,textarget,globalTextureName,level);
ctx->dispatcher().glFramebufferTexture2DEXT(target,attachment,textarget,globalTextureName,level);
}
}
@@ -535,7 +535,7 @@ GL_APICALL void GL_APIENTRY glGenBuffers(GLsizei n, GLuint* buffers){
GL_APICALL void GL_APIENTRY glGenerateMipmap(GLenum target){
GET_CTX();
SET_ERROR_IF(!GLESv2Validate::textureTargetEx(target),GL_INVALID_ENUM);
ctx->dispatcher().glGenerateMipmap(target);
ctx->dispatcher().glGenerateMipmapEXT(target);
}
GL_APICALL void GL_APIENTRY glGenFramebuffers(GLsizei n, GLuint* framebuffers){
@@ -650,13 +650,13 @@ GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv(GLenum target
SET_ERROR_IF(!(GLESv2Validate::framebufferTarget(target) &&
GLESv2Validate::framebufferAttachment(attachment) &&
GLESv2Validate::framebufferAttachmentParams(pname)),GL_INVALID_ENUM);
ctx->dispatcher().glGetFramebufferAttachmentParameteriv(target,attachment,pname,params);
ctx->dispatcher().glGetFramebufferAttachmentParameterivEXT(target,attachment,pname,params);
}
GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params){
GET_CTX();
SET_ERROR_IF(!(GLESv2Validate::renderbufferTarget(target) && GLESv2Validate::renderbufferParams(pname)),GL_INVALID_ENUM);
ctx->dispatcher().glGetRenderbufferParameteriv(target,pname,params);
ctx->dispatcher().glGetRenderbufferParameterivEXT(target,pname,params);
}
@@ -969,7 +969,7 @@ GL_APICALL void GL_APIENTRY glReleaseShaderCompiler(void){
GL_APICALL void GL_APIENTRY glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height){
GET_CTX();
ctx->dispatcher().glRenderbufferStorage(target,internalformat,width,height);
ctx->dispatcher().glRenderbufferStorageEXT(target,internalformat,width,height);
}
GL_APICALL void GL_APIENTRY glSampleCoverage(GLclampf value, GLboolean invert){

View File

@@ -230,11 +230,6 @@ void (GLAPIENTRY *GLDispatch::glGetTexGeniv) (GLenum coord, GLenum pname, GLint
void (GL_APIENTRY *GLDispatch::glBlendColor)(GLclampf,GLclampf,GLclampf,GLclampf) = NULL;
void (GL_APIENTRY *GLDispatch::glStencilFuncSeparate)(GLenum,GLenum,GLint,GLuint) = NULL;
void (GL_APIENTRY *GLDispatch::glStencilMaskSeparate)(GLenum,GLuint) = NULL;
void (GL_APIENTRY *GLDispatch::glGenerateMipmap)(GLenum) = NULL;
void (GL_APIENTRY *GLDispatch::glBindFramebuffer)(GLenum,GLuint) = NULL;
void (GL_APIENTRY *GLDispatch::glBindRenderbuffer)(GLenum,GLuint) = NULL;
void (GL_APIENTRY *GLDispatch::glDeleteFramebuffers)(GLsizei,const GLuint*) = NULL;
void (GL_APIENTRY *GLDispatch::glDeleteRenderbuffers)(GLsizei,const GLuint*) = NULL;
GLboolean (GL_APIENTRY *GLDispatch::glIsProgram)(GLuint program) = NULL;
GLboolean (GL_APIENTRY *GLDispatch::glIsShader)(GLuint shader) = NULL;
void (GL_APIENTRY *GLDispatch::glVertexAttrib1f)(GLuint,GLfloat) = NULL;
@@ -270,11 +265,6 @@ void (GL_APIENTRY *GLDispatch::glUniform4iv)(GLint,GLsizei,const GLint*) = NULL;
void (GL_APIENTRY *GLDispatch::glUniformMatrix2fv)(GLint,GLsizei,GLboolean,const GLfloat*) = NULL;
void (GL_APIENTRY *GLDispatch::glUniformMatrix3fv)(GLint,GLsizei,GLboolean,const GLfloat*) = NULL;
void (GL_APIENTRY *GLDispatch::glUniformMatrix4fv)(GLint,GLsizei,GLboolean,const GLfloat*) = NULL;
void (GL_APIENTRY *GLDispatch::glGetFramebufferAttachmentParameteriv)(GLenum,GLenum,GLenum,GLint*) = NULL;
void (GL_APIENTRY *GLDispatch::glGetRenderbufferParameteriv)(GLenum,GLenum,GLint*) = NULL;
GLboolean (GL_APIENTRY *GLDispatch::glIsFramebuffer)(GLuint) = NULL;
GLboolean (GL_APIENTRY *GLDispatch::glIsRenderbuffer)(GLuint) = NULL;
GLenum (GL_APIENTRY *GLDispatch::glCheckFramebufferStatus)(GLenum) = NULL;
void (GL_APIENTRY *GLDispatch::glAttachShader)(GLuint,GLuint) = NULL;
void (GL_APIENTRY *GLDispatch::glBindAttribLocation)(GLuint,GLuint,const GLchar*) = NULL;
void (GL_APIENTRY *GLDispatch::glCompileShader)(GLuint) = NULL;
@@ -300,11 +290,8 @@ void (GL_APIENTRY *GLDispatch::glGetUniformfv)(GLuint,GLint,GLfloat*) = NULL;
void (GL_APIENTRY *GLDispatch::glGetUniformiv)(GLuint,GLint,GLint*) = NULL;
int (GL_APIENTRY *GLDispatch::glGetUniformLocation)(GLuint,const GLchar*) = NULL;
void (GL_APIENTRY *GLDispatch::glReleaseShaderCompiler)() = NULL;
void (GL_APIENTRY *GLDispatch::glRenderbufferStorage)(GLenum,GLenum,GLsizei,GLsizei) = NULL;
void (GL_APIENTRY *GLDispatch::glShaderBinary)(GLsizei,const GLuint*,GLenum,const GLvoid*,GLsizei) = NULL;
void (GL_APIENTRY *GLDispatch::glShaderSource)(GLuint,GLsizei,const GLchar**,const GLint*) = NULL;
void (GL_APIENTRY *GLDispatch::glFramebufferRenderbuffer)(GLenum,GLenum,GLenum,GLuint) = NULL;
void (GL_APIENTRY *GLDispatch::glFramebufferTexture2D)(GLenum,GLenum,GLenum,GLuint,GLint) = NULL;
GLDispatch::GLDispatch():m_isLoaded(false){};
@@ -380,6 +367,23 @@ void GLDispatch::dispatchFuncs(GLESVersion version){
LOAD_GL_FUNC(glPushClientAttrib);
LOAD_GL_FUNC(glPopAttrib);
LOAD_GL_FUNC(glPopClientAttrib);
LOAD_GLEXT_FUNC(glIsRenderbufferEXT);
LOAD_GLEXT_FUNC(glBindRenderbufferEXT);
LOAD_GLEXT_FUNC(glDeleteRenderbuffersEXT);
LOAD_GLEXT_FUNC(glGenRenderbuffersEXT);
LOAD_GLEXT_FUNC(glRenderbufferStorageEXT);
LOAD_GLEXT_FUNC(glGetRenderbufferParameterivEXT);
LOAD_GLEXT_FUNC(glIsFramebufferEXT);
LOAD_GLEXT_FUNC(glBindFramebufferEXT);
LOAD_GLEXT_FUNC(glDeleteFramebuffersEXT);
LOAD_GLEXT_FUNC(glGenFramebuffersEXT);
LOAD_GLEXT_FUNC(glCheckFramebufferStatusEXT);
LOAD_GLEXT_FUNC(glFramebufferTexture1DEXT);
LOAD_GLEXT_FUNC(glFramebufferTexture2DEXT);
LOAD_GLEXT_FUNC(glFramebufferTexture3DEXT);
LOAD_GLEXT_FUNC(glFramebufferRenderbufferEXT);
LOAD_GLEXT_FUNC(glGetFramebufferAttachmentParameterivEXT);
LOAD_GLEXT_FUNC(glGenerateMipmapEXT);
/* Loading OpenGL functions which are needed ONLY for implementing GLES 1.1*/
if(version == GLES_1_1){
@@ -445,23 +449,6 @@ void GLDispatch::dispatchFuncs(GLESVersion version){
LOAD_GL_FUNC(glTranslatef);
LOAD_GL_FUNC(glVertexPointer);
LOAD_GLEXT_FUNC(glIsRenderbufferEXT);
LOAD_GLEXT_FUNC(glBindRenderbufferEXT);
LOAD_GLEXT_FUNC(glDeleteRenderbuffersEXT);
LOAD_GLEXT_FUNC(glGenRenderbuffersEXT);
LOAD_GLEXT_FUNC(glRenderbufferStorageEXT);
LOAD_GLEXT_FUNC(glGetRenderbufferParameterivEXT);
LOAD_GLEXT_FUNC(glIsFramebufferEXT);
LOAD_GLEXT_FUNC(glBindFramebufferEXT);
LOAD_GLEXT_FUNC(glDeleteFramebuffersEXT);
LOAD_GLEXT_FUNC(glGenFramebuffersEXT);
LOAD_GLEXT_FUNC(glCheckFramebufferStatusEXT);
LOAD_GLEXT_FUNC(glFramebufferTexture1DEXT);
LOAD_GLEXT_FUNC(glFramebufferTexture2DEXT);
LOAD_GLEXT_FUNC(glFramebufferTexture3DEXT);
LOAD_GLEXT_FUNC(glFramebufferRenderbufferEXT);
LOAD_GLEXT_FUNC(glGetFramebufferAttachmentParameterivEXT);
LOAD_GLEXT_FUNC(glGenerateMipmapEXT);
LOAD_GLEXT_FUNC(glCurrentPaletteMatrixARB);
LOAD_GLEXT_FUNC(glMatrixIndexuivARB);
LOAD_GLEXT_FUNC(glMatrixIndexPointerARB);
@@ -480,11 +467,6 @@ void GLDispatch::dispatchFuncs(GLESVersion version){
LOAD_GL_FUNC(glBlendColor);
LOAD_GL_FUNC(glBlendFuncSeparate);
LOAD_GL_FUNC(glStencilFuncSeparate);
LOAD_GL_FUNC(glGenerateMipmap);
LOAD_GL_FUNC(glBindFramebuffer);
LOAD_GL_FUNC(glBindRenderbuffer);
LOAD_GL_FUNC(glDeleteFramebuffers);
LOAD_GL_FUNC(glDeleteRenderbuffers);
LOAD_GL_FUNC(glIsProgram);
LOAD_GL_FUNC(glIsShader);
LOAD_GL_FUNC(glVertexAttrib1f);
@@ -501,8 +483,6 @@ void GLDispatch::dispatchFuncs(GLESVersion version){
LOAD_GL_FUNC(glGetVertexAttribfv);
LOAD_GL_FUNC(glGetVertexAttribiv);
LOAD_GL_FUNC(glGetVertexAttribPointerv);
LOAD_GL_FUNC(glIsFramebuffer);
LOAD_GL_FUNC(glIsRenderbuffer);
LOAD_GL_FUNC(glUniform1f);
LOAD_GL_FUNC(glUniform1fv);
LOAD_GL_FUNC(glUniform1i);
@@ -522,9 +502,6 @@ void GLDispatch::dispatchFuncs(GLESVersion version){
LOAD_GL_FUNC(glUniformMatrix2fv);
LOAD_GL_FUNC(glUniformMatrix3fv);
LOAD_GL_FUNC(glUniformMatrix4fv);
LOAD_GL_FUNC(glCheckFramebufferStatus);
LOAD_GL_FUNC(glGetFramebufferAttachmentParameteriv);
LOAD_GL_FUNC(glGetRenderbufferParameteriv);
LOAD_GL_FUNC(glAttachShader);
LOAD_GL_FUNC(glBindAttribLocation);
LOAD_GL_FUNC(glCompileShader);
@@ -550,12 +527,9 @@ void GLDispatch::dispatchFuncs(GLESVersion version){
LOAD_GL_FUNC(glGetUniformiv);
LOAD_GL_FUNC(glGetUniformLocation);
LOAD_GL_FUNC(glReleaseShaderCompiler);
LOAD_GL_FUNC(glRenderbufferStorage);
LOAD_GL_FUNC(glShaderBinary);
LOAD_GL_FUNC(glShaderSource);
LOAD_GL_FUNC(glStencilMaskSeparate);
LOAD_GL_FUNC(glFramebufferRenderbuffer);
LOAD_GL_FUNC(glFramebufferTexture2D);
}
m_isLoaded = true;
}

View File

@@ -95,6 +95,23 @@ public:
static void (GLAPIENTRY *glPopAttrib) ( void );
static void (GLAPIENTRY *glPushClientAttrib) ( GLbitfield mask );
static void (GLAPIENTRY *glPopClientAttrib) ( void );
static GLboolean (GLAPIENTRY *glIsRenderbufferEXT) (GLuint renderbuffer);
static void (GLAPIENTRY *glBindRenderbufferEXT) (GLenum target, GLuint renderbuffer);
static void (GLAPIENTRY *glDeleteRenderbuffersEXT) (GLsizei n, const GLuint *renderbuffers);
static void (GLAPIENTRY *glGenRenderbuffersEXT) (GLsizei n, GLuint *renderbuffers);
static void (GLAPIENTRY *glRenderbufferStorageEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
static void (GLAPIENTRY *glGetRenderbufferParameterivEXT) (GLenum target, GLenum pname, GLint *params);
static GLboolean (GLAPIENTRY *glIsFramebufferEXT) (GLuint framebuffer);
static void (GLAPIENTRY *glBindFramebufferEXT) (GLenum target, GLuint framebuffer);
static void (GLAPIENTRY *glDeleteFramebuffersEXT) (GLsizei n, const GLuint *framebuffers);
static void (GLAPIENTRY *glGenFramebuffersEXT) (GLsizei n, GLuint *framebuffers);
static GLenum (GLAPIENTRY *glCheckFramebufferStatusEXT) (GLenum target);
static void (GLAPIENTRY *glFramebufferTexture1DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
static void (GLAPIENTRY *glFramebufferTexture2DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
static void (GLAPIENTRY *glFramebufferTexture3DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
static void (GLAPIENTRY *glFramebufferRenderbufferEXT) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
static void (GLAPIENTRY *glGetFramebufferAttachmentParameterivEXT) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
static void (GLAPIENTRY *glGenerateMipmapEXT) (GLenum target);
/* OpenGL functions which are needed ONLY for implementing GLES 1.1*/
static void (GLAPIENTRY *glAlphaFunc) (GLenum func, GLclampf ref);
@@ -163,23 +180,6 @@ public:
static void (GLAPIENTRY *glVertexPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
/* OpenGL functions which are needed ONLY for implementing GLES 1.1 EXTENSIONS*/
static GLboolean (GLAPIENTRY *glIsRenderbufferEXT) (GLuint renderbuffer);
static void (GLAPIENTRY *glBindRenderbufferEXT) (GLenum target, GLuint renderbuffer);
static void (GLAPIENTRY *glDeleteRenderbuffersEXT) (GLsizei n, const GLuint *renderbuffers);
static void (GLAPIENTRY *glGenRenderbuffersEXT) (GLsizei n, GLuint *renderbuffers);
static void (GLAPIENTRY *glRenderbufferStorageEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
static void (GLAPIENTRY *glGetRenderbufferParameterivEXT) (GLenum target, GLenum pname, GLint *params);
static GLboolean (GLAPIENTRY *glIsFramebufferEXT) (GLuint framebuffer);
static void (GLAPIENTRY *glBindFramebufferEXT) (GLenum target, GLuint framebuffer);
static void (GLAPIENTRY *glDeleteFramebuffersEXT) (GLsizei n, const GLuint *framebuffers);
static void (GLAPIENTRY *glGenFramebuffersEXT) (GLsizei n, GLuint *framebuffers);
static GLenum (GLAPIENTRY *glCheckFramebufferStatusEXT) (GLenum target);
static void (GLAPIENTRY *glFramebufferTexture1DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
static void (GLAPIENTRY *glFramebufferTexture2DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
static void (GLAPIENTRY *glFramebufferTexture3DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
static void (GLAPIENTRY *glFramebufferRenderbufferEXT) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
static void (GLAPIENTRY *glGetFramebufferAttachmentParameterivEXT) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
static void (GLAPIENTRY *glGenerateMipmapEXT) (GLenum target);
static void (GLAPIENTRY *glCurrentPaletteMatrixARB) (GLint index);
static void (GLAPIENTRY *glMatrixIndexuivARB) (GLint size, GLuint * indices);
static void (GLAPIENTRY *glMatrixIndexPointerARB) (GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
@@ -195,11 +195,6 @@ public:
static void (GL_APIENTRY *glBlendColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
static void (GL_APIENTRY *glStencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask);
static void (GL_APIENTRY *glStencilMaskSeparate)(GLenum face, GLuint mask);
static void (GL_APIENTRY *glGenerateMipmap)(GLenum target);
static void (GL_APIENTRY *glBindFramebuffer)(GLenum target, GLuint framebuffer);
static void (GL_APIENTRY *glBindRenderbuffer)(GLenum target, GLuint renderbuffer);
static void (GL_APIENTRY *glDeleteFramebuffers)(GLsizei n, const GLuint* framebuffers);
static void (GL_APIENTRY *glDeleteRenderbuffers)(GLsizei n, const GLuint* renderbuffers);
static GLboolean (GL_APIENTRY *glIsProgram)(GLuint program);
static GLboolean (GL_APIENTRY *glIsShader)(GLuint shader);
static void (GL_APIENTRY *glVertexAttrib1f)(GLuint indx, GLfloat x);
@@ -235,11 +230,6 @@ public:
static void (GL_APIENTRY *glUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
static void (GL_APIENTRY *glUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
static void (GL_APIENTRY *glUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
static void (GL_APIENTRY *glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint* params);
static void (GL_APIENTRY *glGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint* params);
static GLboolean (GL_APIENTRY *glIsFramebuffer)(GLuint framebuffer);
static GLboolean (GL_APIENTRY *glIsRenderbuffer)(GLuint renderbuffer);
static GLenum (GL_APIENTRY *glCheckFramebufferStatus)(GLenum target);
static void (GL_APIENTRY *glAttachShader)(GLuint program, GLuint shader);
static void (GL_APIENTRY *glBindAttribLocation)(GLuint program, GLuint index, const GLchar* name);
static void (GL_APIENTRY *glCompileShader)(GLuint shader);
@@ -265,11 +255,8 @@ public:
static void (GL_APIENTRY *glGetUniformiv)(GLuint program, GLint location, GLint* params);
static int (GL_APIENTRY *glGetUniformLocation)(GLuint program, const GLchar* name);
static void (GL_APIENTRY *glReleaseShaderCompiler)(void);
static void (GL_APIENTRY *glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
static void (GL_APIENTRY *glShaderBinary)(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
static void (GL_APIENTRY *glShaderSource)(GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
static void (GL_APIENTRY *glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
static void (GL_APIENTRY *glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
private:
bool m_isLoaded;