static VALUE gl_VertexAttribPointerNV(VALUE obj,VALUE arg1,VALUE arg2,VALUE arg3,VALUE arg4,VALUE arg5) { GLuint index; GLuint size; GLenum type; GLsizei stride; LOAD_GL_FUNC(glVertexAttribPointerNV, "GL_NV_vertex_program"); index = (GLuint)NUM2UINT(arg1); size = (GLuint)NUM2UINT(arg2); type = (GLenum)NUM2INT(arg3); stride = (GLsizei)NUM2UINT(arg4); if (index>_MAX_VERTEX_ATTRIBS) rb_raise(rb_eArgError, "Index too large, maximum allowed value '%i'",_MAX_VERTEX_ATTRIBS); if (CheckBufferBinding(GL_ARRAY_BUFFER_BINDING)) { g_VertexAttrib_ptr[index] = arg5; fptr_glVertexAttribPointerNV(index,size,type,stride,(GLvoid *)NUM2LONG(arg5)); } else { VALUE data; data = pack_array_or_pass_string(type,arg5); rb_str_freeze(data); g_VertexAttrib_ptr[index] = data; fptr_glVertexAttribPointerNV(index,size,type,stride,(GLvoid *)RSTRING_PTR(data)); } CHECK_GLERROR_FROM("glVertexAttribPointerNV"); return Qnil; }
static void buffer_free(void *ptr) { struct buffer *buf = ptr; LOAD_GL_FUNC(glUnmapBuffer, "1.5"); if (buf->ptr != NULL) fptr_glUnmapBuffer(buf->target); }
static VALUE gl_GetProgramivNV(VALUE obj,VALUE arg1,VALUE arg2) { GLint ret = 0; LOAD_GL_FUNC(glGetProgramivNV, "GL_NV_vertex_program"); fptr_glGetProgramivNV(NUM2INT(arg1),NUM2INT(arg2),&ret); CHECK_GLERROR_FROM("glGetProgramivNV"); return cond_GLBOOL2RUBY(NUM2INT(arg2),ret); }
static VALUE gl_LoadProgramNV(VALUE obj,VALUE arg1,VALUE arg2,VALUE arg3) { LOAD_GL_FUNC(glLoadProgramNV, "GL_NV_vertex_program"); Check_Type(arg3,T_STRING); fptr_glLoadProgramNV((GLenum)NUM2INT(arg1),(GLuint)NUM2UINT(arg2),(GLsizei)RSTRING_LENINT(arg3),(GLubyte *)RSTRING_PTR(arg3)); CHECK_GLERROR_FROM("glLoadProgramNV"); return Qnil; }
static VALUE gl_ProgramStringARB(VALUE obj,VALUE arg1,VALUE arg2,VALUE arg3) { LOAD_GL_FUNC(glProgramStringARB, "GL_ARB_vertex_program"); Check_Type(arg3,T_STRING); fptr_glProgramStringARB((GLenum)NUM2INT(arg1),(GLenum)NUM2INT(arg2),(GLsizei)RSTRING_LENINT(arg3),RSTRING_PTR(arg3)); CHECK_GLERROR_FROM("glProgramStringARB"); return Qnil; }
static VALUE gl_StringMarkerGREMEDY(VALUE obj,VALUE arg1) { LOAD_GL_FUNC(glStringMarkerGREMEDY,"GL_GREMEDY_string_marker") Check_Type(arg1,T_STRING); fptr_glStringMarkerGREMEDY(RSTRING_LEN(arg1),RSTRING_PTR(arg1)); CHECK_GLERROR return Qnil; }
static VALUE gl_ExecuteProgramNV(VALUE obj,VALUE arg1,VALUE arg2,VALUE arg3) { GLfloat params[4] = {0,0,0,0}; LOAD_GL_FUNC(glExecuteProgramNV, "GL_NV_vertex_program"); ary2cflt(arg3,params,4); fptr_glExecuteProgramNV(NUM2UINT(arg1),NUM2UINT(arg2),params); CHECK_GLERROR_FROM("glExecuteProgramNV"); return Qnil; }
void check_for_glerror(VALUE obj, const char *caller) { GLenum error; DECL_GL_FUNC_PTR(GLenum,glGetError,(void)); LOAD_GL_FUNC(glGetError, NULL); error = fptr_glGetError(); if (error==GL_NO_ERROR) { /* no errors == instant return */ return; } else { /* process errors */ const char *error_string; const char *from = ""; int queued_errors = 0; char message[BUFSIZE]; VALUE exc; if (caller) { from = " for "; } else { caller = ""; } /* check for queued errors */ for(queued_errors = 0; fptr_glGetError()!=GL_NO_ERROR; queued_errors++) ; switch(error) { case GL_INVALID_ENUM: error_string = "invalid enumerant"; break; case GL_INVALID_VALUE: error_string = "invalid value"; break; case GL_INVALID_OPERATION: error_string = "invalid operation"; break; case GL_STACK_OVERFLOW: error_string = "stack overflow"; break; case GL_STACK_UNDERFLOW: error_string = "stack underflow"; break; case GL_OUT_OF_MEMORY: error_string = "out of memory"; break; case GL_TABLE_TOO_LARGE: error_string = "table too large"; break; case GL_INVALID_FRAMEBUFFER_OPERATION_EXT: error_string = "invalid framebuffer operation"; break; default: error_string = "unknown error"; break; } if (queued_errors==0) { snprintf(message, BUFSIZE, "%s%s%s", error_string, from, caller); } else { snprintf(message, BUFSIZE, "%s%s%s [%i queued error(s) cleaned]", error_string, from, caller, queued_errors); } exc = rb_funcall(Class_GLError, rb_intern("new"), 2, rb_str_new2(message), INT2NUM(error)); rb_funcall(rb_cObject, rb_intern("raise"), 1, exc); } }
static VALUE gl_DrawBuffersATI(VALUE obj,VALUE arg1) { GLsizei size; GLenum *buffers; LOAD_GL_FUNC(glDrawBuffersATI,"GL_ATI_draw_buffers") Check_Type(arg1,T_ARRAY); size = (GLsizei)RARRAY_LEN(arg1); buffers = ALLOC_N(GLenum,size); ary2cuint(arg1,buffers,size); fptr_glDrawBuffersATI(size,buffers); xfree(buffers); CHECK_GLERROR return Qnil; }
static VALUE gl_GetProgramStringNV(VALUE obj,VALUE arg1,VALUE arg2) { GLsizei len = 0; char *buffer; VALUE ret_buffer; LOAD_GL_FUNC(glGetProgramStringNV, "GL_NV_vertex_program"); LOAD_GL_FUNC(glGetProgramivNV, "GL_NV_vertex_program"); fptr_glGetProgramivNV(NUM2INT(arg1),GL_PROGRAM_LENGTH_NV,&len); CHECK_GLERROR_FROM("glGetProgramivNV"); if (len<=0) return rb_str_new2(""); buffer = ALLOC_N(GLchar,len+1); memset(buffer,0,sizeof(GLchar) * (len+1)); fptr_glGetProgramStringNV(NUM2INT(arg1),NUM2INT(arg2),buffer); ret_buffer = rb_str_new2(buffer); xfree(buffer); CHECK_GLERROR_FROM("glGetProgramStringNV"); return ret_buffer; }
VALUE rb_gl_buffer_s_map(VALUE klass, VALUE _target, VALUE _access) { struct buffer *buf = ALLOC(struct buffer); LOAD_GL_FUNC(glMapBuffer, "1.5"); buf->target = RUBY2GLENUM(_target); buf->len = 0; buf->ptr = fptr_glMapBuffer(buf->target, RUBY2GLENUM(_access)); if (buf->ptr == NULL) { xfree(buf); CHECK_GLERROR_FROM("glMapBuffer"); } return TypedData_Wrap_Struct(klass, &buffer_type, buf); }
static VALUE gl_PointParameterfvARB(VALUE obj,VALUE arg1,VALUE arg2) { GLfloat params[3] = {(GLfloat)0.0,(GLfloat)0.0,(GLfloat)0.0}; GLenum pname; GLint size; LOAD_GL_FUNC(glPointParameterfvARB, "GL_ARB_point_parameters"); pname = NUM2UINT(arg1); Check_Type(arg2,T_ARRAY); if (pname==GL_POINT_DISTANCE_ATTENUATION) size = 3; else size = 1; ary2cflt(arg2,params,size); fptr_glPointParameterfvARB(pname,params); CHECK_GLERROR_FROM("glPointParameterfvARB"); return Qnil; }
static VALUE rb_gl_buffer_unmap(VALUE self) { struct buffer *buf; LOAD_GL_FUNC(glUnmapBuffer, "1.5"); TypedData_Get_Struct(self, struct buffer, &buffer_type, buf); if (!buf->ptr) return self; fptr_glUnmapBuffer(buf->target); CHECK_GLERROR_FROM("glUnmapBuffer"); buf->ptr = NULL; buf->len = 0; buf->target = 0; return self; }
void GLDispatch::dispatchFuncs(GLESVersion version){ android::Mutex::Autolock mutex(s_lock); if(m_isLoaded) return; /* Loading OpenGL functions which are needed for implementing BOTH GLES 1.1 & GLES 2.0*/ LOAD_GL_FUNC(glActiveTexture); LOAD_GL_FUNC(glBindBuffer); LOAD_GL_FUNC(glBindTexture); LOAD_GL_FUNC(glBlendFunc); LOAD_GL_FUNC(glBlendEquation); LOAD_GL_FUNC(glBlendEquationSeparate); LOAD_GL_FUNC(glBlendFuncSeparate); LOAD_GL_FUNC(glBufferData); LOAD_GL_FUNC(glBufferSubData); LOAD_GL_FUNC(glClear); LOAD_GL_FUNC(glClearColor); LOAD_GL_FUNC(glClearDepth); LOAD_GL_FUNC(glClearStencil); LOAD_GL_FUNC(glColorMask); LOAD_GL_FUNC(glCompressedTexImage2D); LOAD_GL_FUNC(glCompressedTexSubImage2D); LOAD_GL_FUNC(glCopyTexImage2D); LOAD_GL_FUNC(glCopyTexSubImage2D); LOAD_GL_FUNC(glCullFace); LOAD_GL_FUNC(glDeleteBuffers); LOAD_GL_FUNC(glDeleteTextures); LOAD_GL_FUNC(glDepthFunc); LOAD_GL_FUNC(glDepthMask); LOAD_GL_FUNC(glDepthRange); LOAD_GL_FUNC(glDisable); LOAD_GL_FUNC(glDrawArrays); LOAD_GL_FUNC(glDrawElements); LOAD_GL_FUNC(glEnable); LOAD_GL_FUNC(glFinish); LOAD_GL_FUNC(glFlush); LOAD_GL_FUNC(glFrontFace); LOAD_GL_FUNC(glGenBuffers); LOAD_GL_FUNC(glGenTextures); LOAD_GL_FUNC(glGetBooleanv); LOAD_GL_FUNC(glGetBufferParameteriv); LOAD_GL_FUNC(glGetError); LOAD_GL_FUNC(glGetFloatv); LOAD_GL_FUNC(glGetIntegerv); LOAD_GL_FUNC(glGetString); LOAD_GL_FUNC(glTexParameterf); LOAD_GL_FUNC(glTexParameterfv); LOAD_GL_FUNC(glGetTexParameterfv); LOAD_GL_FUNC(glGetTexParameteriv); LOAD_GL_FUNC(glHint); LOAD_GL_FUNC(glIsBuffer); LOAD_GL_FUNC(glIsEnabled); LOAD_GL_FUNC(glIsTexture); LOAD_GL_FUNC(glLineWidth); LOAD_GL_FUNC(glPolygonOffset); LOAD_GL_FUNC(glPixelStorei); LOAD_GL_FUNC(glReadPixels); LOAD_GL_FUNC(glSampleCoverage); LOAD_GL_FUNC(glScissor); LOAD_GL_FUNC(glStencilFunc); LOAD_GL_FUNC(glStencilMask); LOAD_GL_FUNC(glStencilOp); LOAD_GL_FUNC(glTexImage2D); LOAD_GL_FUNC(glTexParameteri); LOAD_GL_FUNC(glTexParameteriv); LOAD_GL_FUNC(glTexSubImage2D); LOAD_GL_FUNC(glViewport); LOAD_GL_FUNC(glPushAttrib); LOAD_GL_FUNC(glPushClientAttrib); LOAD_GL_FUNC(glPopAttrib); LOAD_GL_FUNC(glPopClientAttrib); /* Loading OpenGL functions which are needed ONLY for implementing GLES 1.1*/ if(version == GLES_1_1){ LOAD_GL_FUNC(glAlphaFunc); LOAD_GL_FUNC(glBegin); LOAD_GL_FUNC(glClientActiveTexture); LOAD_GL_FUNC(glClipPlane); LOAD_GL_FUNC(glColor4d); LOAD_GL_FUNC(glColor4f); LOAD_GL_FUNC(glColor4fv); LOAD_GL_FUNC(glColor4ub); LOAD_GL_FUNC(glColor4ubv); LOAD_GL_FUNC(glColorPointer); LOAD_GL_FUNC(glDisableClientState); LOAD_GL_FUNC(glEnableClientState); LOAD_GL_FUNC(glEnd); LOAD_GL_FUNC(glFogf); LOAD_GL_FUNC(glFogfv); LOAD_GL_FUNC(glFrustum); LOAD_GL_FUNC(glGetClipPlane); LOAD_GL_FUNC(glGetDoublev); LOAD_GL_FUNC(glGetLightfv); LOAD_GL_FUNC(glGetMaterialfv); LOAD_GL_FUNC(glGetPointerv); LOAD_GL_FUNC(glGetTexEnvfv); LOAD_GL_FUNC(glGetTexEnviv); LOAD_GL_FUNC(glLightf); LOAD_GL_FUNC(glLightfv); LOAD_GL_FUNC(glLightModelf); LOAD_GL_FUNC(glLightModelfv); LOAD_GL_FUNC(glLoadIdentity); LOAD_GL_FUNC(glLoadMatrixf); LOAD_GL_FUNC(glLogicOp); LOAD_GL_FUNC(glMaterialf); LOAD_GL_FUNC(glMaterialfv); LOAD_GL_FUNC(glMultiTexCoord2fv); LOAD_GL_FUNC(glMultiTexCoord2sv); LOAD_GL_FUNC(glMultiTexCoord3fv); LOAD_GL_FUNC(glMultiTexCoord3sv); LOAD_GL_FUNC(glMultiTexCoord4fv); LOAD_GL_FUNC(glMultiTexCoord4sv); LOAD_GL_FUNC(glMultiTexCoord4f); LOAD_GL_FUNC(glMultMatrixf); LOAD_GL_FUNC(glNormal3f); LOAD_GL_FUNC(glNormal3fv); LOAD_GL_FUNC(glNormal3sv); LOAD_GL_FUNC(glOrtho); LOAD_GL_FUNC(glPointParameterf); LOAD_GL_FUNC(glPointParameterfv); LOAD_GL_FUNC(glPointSize); LOAD_GL_FUNC(glRotatef); LOAD_GL_FUNC(glScalef); LOAD_GL_FUNC(glTexEnvf); LOAD_GL_FUNC(glTexEnvfv); LOAD_GL_FUNC(glMatrixMode); LOAD_GL_FUNC(glNormalPointer); LOAD_GL_FUNC(glPopMatrix); LOAD_GL_FUNC(glPushMatrix); LOAD_GL_FUNC(glShadeModel); LOAD_GL_FUNC(glTexCoordPointer); LOAD_GL_FUNC(glTexEnvi); LOAD_GL_FUNC(glTexEnviv); 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); LOAD_GLEXT_FUNC(glWeightPointerARB); LOAD_GLEXT_FUNC(glTexGenf); LOAD_GLEXT_FUNC(glTexGeni); LOAD_GLEXT_FUNC(glTexGenfv); LOAD_GLEXT_FUNC(glTexGeniv); LOAD_GLEXT_FUNC(glGetTexGenfv); LOAD_GLEXT_FUNC(glGetTexGeniv); } else if (version == GLES_2_0){ /* Loading OpenGL functions which are needed ONLY for implementing GLES 2.0*/ 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); LOAD_GL_FUNC(glVertexAttrib1fv); LOAD_GL_FUNC(glVertexAttrib2f); LOAD_GL_FUNC(glVertexAttrib2fv); LOAD_GL_FUNC(glVertexAttrib3f); LOAD_GL_FUNC(glVertexAttrib3fv); LOAD_GL_FUNC(glVertexAttrib4f); LOAD_GL_FUNC(glVertexAttrib4fv); LOAD_GL_FUNC(glVertexAttribPointer); LOAD_GL_FUNC(glDisableVertexAttribArray); LOAD_GL_FUNC(glEnableVertexAttribArray); 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); LOAD_GL_FUNC(glUniform1iv); LOAD_GL_FUNC(glUniform2f); LOAD_GL_FUNC(glUniform2fv); LOAD_GL_FUNC(glUniform2i); LOAD_GL_FUNC(glUniform2iv); LOAD_GL_FUNC(glUniform3f); LOAD_GL_FUNC(glUniform3fv); LOAD_GL_FUNC(glUniform3i); LOAD_GL_FUNC(glUniform3iv); LOAD_GL_FUNC(glUniform4f); LOAD_GL_FUNC(glUniform4fv); LOAD_GL_FUNC(glUniform4i); LOAD_GL_FUNC(glUniform4iv); 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); LOAD_GL_FUNC(glCreateProgram); LOAD_GL_FUNC(glCreateShader); LOAD_GL_FUNC(glDeleteProgram); LOAD_GL_FUNC(glDeleteShader); LOAD_GL_FUNC(glDetachShader); LOAD_GL_FUNC(glLinkProgram); LOAD_GL_FUNC(glUseProgram); LOAD_GL_FUNC(glValidateProgram); LOAD_GL_FUNC(glGetActiveAttrib); LOAD_GL_FUNC(glGetActiveUniform); LOAD_GL_FUNC(glGetAttachedShaders); LOAD_GL_FUNC(glGetAttribLocation); LOAD_GL_FUNC(glGetProgramiv); LOAD_GL_FUNC(glGetProgramInfoLog); LOAD_GL_FUNC(glGetShaderiv); LOAD_GL_FUNC(glGetShaderInfoLog); LOAD_GL_FUNC(glGetShaderPrecisionFormat); LOAD_GL_FUNC(glGetShaderSource); LOAD_GL_FUNC(glGetUniformfv); 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; }
void GLDispatch::dispatchFuncs() { emugl::Mutex::AutoLock mutex(m_lock); if(m_isLoaded) return; LOAD_GL_FUNC(glActiveTexture); LOAD_GL_FUNC(glAlphaFunc); LOAD_GL_FUNC(glBegin); LOAD_GL_FUNC(glBindBuffer); LOAD_GL_FUNC(glBindTexture); LOAD_GL_FUNC(glBlendFunc); LOAD_GL_FUNC(glBufferData); LOAD_GL_FUNC(glBufferSubData); LOAD_GL_FUNC(glClear); LOAD_GL_FUNC(glClearColor); LOAD_GL_FUNC(glClearDepth); LOAD_GL_FUNC(glClearStencil); LOAD_GL_FUNC(glClientActiveTexture); LOAD_GL_FUNC(glClipPlane); LOAD_GL_FUNC(glColor4d); LOAD_GL_FUNC(glColor4f); LOAD_GL_FUNC(glColor4fv); LOAD_GL_FUNC(glColor4ub); LOAD_GL_FUNC(glColor4ubv); LOAD_GL_FUNC(glColorMask); LOAD_GL_FUNC(glColorPointer); LOAD_GL_FUNC(glCompressedTexImage2D); LOAD_GL_FUNC(glCompressedTexSubImage2D); LOAD_GL_FUNC(glCopyTexImage2D); LOAD_GL_FUNC(glCopyTexSubImage2D); LOAD_GL_FUNC(glCullFace); LOAD_GL_FUNC(glDeleteBuffers); LOAD_GL_FUNC(glDeleteTextures); LOAD_GL_FUNC(glDepthFunc); LOAD_GL_FUNC(glDepthMask); LOAD_GL_FUNC(glDepthRange); LOAD_GL_FUNC(glDisable); LOAD_GL_FUNC(glDisableClientState); LOAD_GL_FUNC(glDrawArrays); LOAD_GL_FUNC(glDrawElements); LOAD_GL_FUNC(glEnable); LOAD_GL_FUNC(glEnableClientState); LOAD_GL_FUNC(glEnd); LOAD_GL_FUNC(glFinish); LOAD_GL_FUNC(glFlush); LOAD_GL_FUNC(glFogf); LOAD_GL_FUNC(glFogfv); LOAD_GL_FUNC(glFrontFace); LOAD_GL_FUNC(glFrustum); LOAD_GL_FUNC(glGenBuffers); LOAD_GL_FUNC(glGenTextures); LOAD_GL_FUNC(glGetBooleanv); LOAD_GL_FUNC(glGetBufferParameteriv); LOAD_GL_FUNC(glGetClipPlane); LOAD_GL_FUNC(glGetDoublev); LOAD_GL_FUNC(glGetError); LOAD_GL_FUNC(glGetFloatv); LOAD_GL_FUNC(glGetIntegerv); LOAD_GL_FUNC(glGetLightfv); LOAD_GL_FUNC(glGetMaterialfv); LOAD_GL_FUNC(glGetPointerv); LOAD_GL_FUNC(glGetString); LOAD_GL_FUNC(glGetTexEnvfv); LOAD_GL_FUNC(glGetTexEnviv); LOAD_GL_FUNC(glGetTexParameterfv); LOAD_GL_FUNC(glGetTexParameteriv); LOAD_GL_FUNC(glHint); LOAD_GL_FUNC(glIsBuffer); LOAD_GL_FUNC(glIsEnabled); LOAD_GL_FUNC(glIsTexture); LOAD_GL_FUNC(glLightf); LOAD_GL_FUNC(glLightfv); LOAD_GL_FUNC(glLightModelf); LOAD_GL_FUNC(glLightModelfv); LOAD_GL_FUNC(glLineWidth); LOAD_GL_FUNC(glLoadIdentity); LOAD_GL_FUNC(glLoadMatrixf); LOAD_GL_FUNC(glLogicOp); LOAD_GL_FUNC(glMaterialf); LOAD_GL_FUNC(glMaterialfv); LOAD_GL_FUNC(glMultiTexCoord2fv); LOAD_GL_FUNC(glMultiTexCoord2sv); LOAD_GL_FUNC(glMultiTexCoord3fv); LOAD_GL_FUNC(glMultiTexCoord3sv); LOAD_GL_FUNC(glMultiTexCoord4fv); LOAD_GL_FUNC(glMultiTexCoord4sv); LOAD_GL_FUNC(glMultiTexCoord4f); LOAD_GL_FUNC(glMultMatrixf); LOAD_GL_FUNC(glNormal3f); LOAD_GL_FUNC(glNormal3fv); LOAD_GL_FUNC(glNormal3sv); LOAD_GL_FUNC(glOrtho); LOAD_GL_FUNC(glPointParameterf); LOAD_GL_FUNC(glPointParameterfv); LOAD_GL_FUNC(glPointSize); LOAD_GL_FUNC(glPolygonOffset); LOAD_GL_FUNC(glRotatef); LOAD_GL_FUNC(glScalef); LOAD_GL_FUNC(glTexEnvf); LOAD_GL_FUNC(glTexEnvfv); LOAD_GL_FUNC(glTexParameterf); LOAD_GL_FUNC(glTexParameterfv); LOAD_GL_FUNC(glMatrixMode); LOAD_GL_FUNC(glNormalPointer); LOAD_GL_FUNC(glPixelStorei); LOAD_GL_FUNC(glPopMatrix); LOAD_GL_FUNC(glPushMatrix); LOAD_GL_FUNC(glReadPixels); LOAD_GL_FUNC(glSampleCoverage); LOAD_GL_FUNC(glScissor); LOAD_GL_FUNC(glShadeModel); LOAD_GL_FUNC(glStencilFunc); LOAD_GL_FUNC(glStencilMask); LOAD_GL_FUNC(glStencilOp); LOAD_GL_FUNC(glTexCoordPointer); LOAD_GL_FUNC(glTexEnvi); LOAD_GL_FUNC(glTexEnviv); LOAD_GL_FUNC(glTexImage2D); LOAD_GL_FUNC(glTexParameteri); LOAD_GL_FUNC(glTexParameteriv); LOAD_GL_FUNC(glTexSubImage2D); LOAD_GL_FUNC(glTranslatef); LOAD_GL_FUNC(glVertexPointer); LOAD_GL_FUNC(glViewport); m_isLoaded = true; }