void loadEGLFunctions() { #ifdef VC void *gles2so = dlopen("/opt/vc/lib/libGLESv2.so", RTLD_NOW); #endif #ifdef OS_WINDOWS GL_GET_PROC_ADR(PFNGLACTIVETEXTUREPROC, glActiveTexture); GL_GET_PROC_ADR(PFNGLBLENDCOLORPROC, glBlendColor); #elif defined(EGL) GL_GET_PROC_ADR(PFNGLBLENDFUNCPROC, glBlendFunc); GL_GET_PROC_ADR(PFNGLPIXELSTOREIPROC, glPixelStorei); GL_GET_PROC_ADR(PFNGLCLEARCOLORPROC, glClearColor); GL_GET_PROC_ADR(PFNGLCULLFACEPROC, glCullFace); GL_GET_PROC_ADR(PFNGLDEPTHFUNCPROC, glDepthFunc); GL_GET_PROC_ADR(PFNGLDEPTHMASKPROC, glDepthMask); GL_GET_PROC_ADR(PFNGLDISABLEPROC, glDisable); GL_GET_PROC_ADR(PFNGLENABLEPROC, glEnable); GL_GET_PROC_ADR(PFNGLPOLYGONOFFSETPROC, glPolygonOffset); GL_GET_PROC_ADR(PFNGLSCISSORPROC, glScissor); GL_GET_PROC_ADR(PFNGLVIEWPORTPROC, glViewport); GL_GET_PROC_ADR(PFNGLBINDTEXTUREPROC, glBindTexture); GL_GET_PROC_ADR(PFNGLTEXIMAGE2DPROC, glTexImage2D); GL_GET_PROC_ADR(PFNGLTEXPARAMETERIPROC, glTexParameteri); GL_GET_PROC_ADR(PFNGLGETINTEGERVPROC, glGetIntegerv); GL_GET_PROC_ADR(PFNGLGETSTRINGPROC, glGetString); GL_GET_PROC_ADR(PFNGLREADPIXELSPROC, glReadPixels); GL_GET_PROC_ADR(PFNGLTEXSUBIMAGE2DPROC, glTexSubImage2D); GL_GET_PROC_ADR(PFNGLDRAWARRAYSPROC, glDrawArrays); GL_GET_PROC_ADR(PFNGLGETERRORPROC, glGetError); GL_GET_PROC_ADR(PFNGLDRAWELEMENTSPROC, glDrawElements); GL_GET_PROC_ADR(PFNGLLINEWIDTHPROC, glLineWidth); GL_GET_PROC_ADR(PFNGLCLEARPROC, glClear); GL_GET_PROC_ADR(PFNGLGETFLOATVPROC, glGetFloatv); GL_GET_PROC_ADR(PFNGLDELETETEXTURESPROC, glDeleteTextures); GL_GET_PROC_ADR(PFNGLGENTEXTURESPROC, glGenTextures); GL_GET_PROC_ADR(PFNGLTEXPARAMETERFPROC, glTexParameterf); GL_GET_PROC_ADR(PFNGLACTIVETEXTUREPROC, glActiveTexture); GL_GET_PROC_ADR(PFNGLBLENDCOLORPROC, glBlendColor); GL_GET_PROC_ADR(PFNGLREADBUFFERPROC, glReadBuffer); GL_GET_PROC_ADR(PFNGLFINISHPROC, glFinish); GL_GET_PROC_ADR(PFNGLTEXENVIPROC, glTexEnvi); GL_GET_PROC_ADR(PFNGLACTIVATETEXTUREARBPROC, glActiveTextureARB); GL_GET_PROC_ADR(PFNGLCREATESHADEROBJECTARBPROC, glCreateShaderObjectARB); GL_GET_PROC_ADR(PFNGLSHADERSOURCEARBPROC, glShaderSourceARB); GL_GET_PROC_ADR(PFNGLCOMPILESHADERARBPROC, glCompileShaderARB); GL_GET_PROC_ADR(PFNGLCREATEPROGRAMOBJECTARBPROC, glCreateProgramObjectARB); GL_GET_PROC_ADR(PFNGLATTACHOBJECTARBPROC, glAttachObjectARB); GL_GET_PROC_ADR(PFNGLLINKPROGRAMARBPROC, glLinkProgramARB); GL_GET_PROC_ADR(PFNGLUSEPROGRAMOBJECTARBPROC, glUseProgramObjectARB); GL_GET_PROC_ADR(PFNGLGETOBJECTPARAMETERIVARBPROC, glGetObjectParameterivARB); GL_GET_PROC_ADR(PFNGLGETINFOLOGARBPROC, glGetInfoLogARB); GL_GET_PROC_ADR(PFNGLGETUNIFORMLOCATIONARBPROC, glGetUniformLocationARB); GL_GET_PROC_ADR(PFNGLUNIFORM1IARBPROC, glUniform1iARB); GL_GET_PROC_ADR(PFNGLUNIFORM4FARBPROC, glUniform4fARB); GL_GET_PROC_ADR(PFNGLUNIFORM1FARBPROC, glUniform1fARB); GL_GET_PROC_ADR(PFNGLBLENDFUNCSEPARATEEXTPROC, glBlendFuncSeparateEXT); GL_GET_PROC_ADR(PFNGLALPHAFUNCPROC, glAlphaFunc); GL_GET_PROC_ADR(PFNGLFOGIPROC, glFogi); GL_GET_PROC_ADR(PFNGLFOGFPROC, glFogf); GL_GET_PROC_ADR(PFNGLFOGFVPROC, glFogfv); GL_GET_PROC_ADR(PFNGLCOMPRESSEDTEXIMAGE2DARBPROC, glCompressedTexImage2DARB); GL_GET_PROC_ADR(PFNGLPUSHATTRIBPROC, glPushAttrib); GL_GET_PROC_ADR(PFNGLDRAWBUFFERPROC, glDrawBuffer); GL_GET_PROC_ADR(PFNGLCOLOR4UBPROC, glColor4ub); GL_GET_PROC_ADR(PFNGLBEGINPROC, glBegin); GL_GET_PROC_ADR(PFNGLVERTEX3FPROC, glVertex3f); GL_GET_PROC_ADR(PFNGLENDPROC, glEnd); GL_GET_PROC_ADR(PFNGLPOPATTRIBPROC, glPopAttrib); GL_GET_PROC_ADR(PFNGLMULTITEXCOORD2FARBPROC, glMultiTexCoord2fARB); GL_GET_PROC_ADR(PFNGLTEXCOORD2FPROC, glTexCoord2f); GL_GET_PROC_ADR(PFNGLCOLOR4FPROC, glColor4f); GL_GET_PROC_ADR(PFNGLSECONDARYCOLOR3FPROC, glSecondaryColor3f); GL_GET_PROC_ADR(PFNGLVERTEX4FPROC, glVertex4f); GL_GET_PROC_ADR(PFNGLCOLORMASKPROC, glColorMask); GL_GET_PROC_ADR(PFNGLMATRIXMODEPROC, glMatrixMode); GL_GET_PROC_ADR(PFNGLLOADIDENTITYPROC, glLoadIdentity); GL_GET_PROC_ADR(PFNGLTRANSLATEFPROC, glTranslatef); GL_GET_PROC_ADR(PFNGLSCALEFPROC, glScalef); GL_GET_PROC_ADR(PFNGLGETTEXLEVELPARAMETERIVPROC, glGetTexLevelParameteriv); GL_GET_PROC_ADR(PFNGLBINDFRAMEBUFFEREXTPROC, glBindFramebufferEXT); GL_GET_PROC_ADR(PFNGLDELETEFRAMEBUFFERSEXTPROC, glDeleteFramebuffersEXT); GL_GET_PROC_ADR(PFNGLDELETERENDERBUFFERSEXTPROC, glDeleteRenderbuffersEXT); GL_GET_PROC_ADR(PFNGLFRAMEBUFFERTEXTURE2DEXTPROC, glFramebufferTexture2DEXT); GL_GET_PROC_ADR(PFNGLBINDRENDERBUFFEREXTPROC, glBindRenderbufferEXT); GL_GET_PROC_ADR(PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC, glFramebufferRenderbufferEXT); GL_GET_PROC_ADR(PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC, glCheckFramebufferStatusEXT); GL_GET_PROC_ADR(PFNGLGENFRAMEBUFFERSEXTPROC, glGenFramebuffersEXT); GL_GET_PROC_ADR(PFNGLGENRENDERBUFFERSEXTPROC, glGenRenderbuffersEXT); GL_GET_PROC_ADR(PFNGLRENDERBUFFERSTORAGEEXTPROC, glRenderbufferStorageEXT); GL_GET_PROC_ADR(PFNGLCOPYTEXSUBIMAGE2DPROC, glCopyTexSubImage2D); GL_GET_PROC_ADR(PFNGLVERTEX2FPROC, glVertex2f); GL_GET_PROC_ADR(PFNGLCOPYTEXIMAGE2DPROC, glCopyTexImage2D); GL_GET_PROC_ADR(PFNGLLOADMATRIXFPROC, glLoadMatrixf); GL_GET_PROC_ADR(PFNGLCLEARDEPTHPROC, glClearDepth); GL_GET_PROC_ADR(PFNGLGETHANDLEARBPROC, glGetHandleARB); GL_GET_PROC_ADR(PFNGLDRAWPIXELSPROC, glDrawPixels); #endif GL_GET_PROC_ADR(PFNGLCREATESHADERPROC, glCreateShader); GL_GET_PROC_ADR(PFNGLCOMPILESHADERPROC, glCompileShader); GL_GET_PROC_ADR(PFNGLSHADERSOURCEPROC, glShaderSource); GL_GET_PROC_ADR(PFNGLCREATEPROGRAMPROC, glCreateProgram); GL_GET_PROC_ADR(PFNGLATTACHSHADERPROC, glAttachShader); GL_GET_PROC_ADR(PFNGLLINKPROGRAMPROC, glLinkProgram); GL_GET_PROC_ADR(PFNGLUSEPROGRAMPROC, glUseProgram); GL_GET_PROC_ADR(PFNGLGETUNIFORMLOCATIONPROC, glGetUniformLocation); GL_GET_PROC_ADR(PFNGLUNIFORM1IPROC, glUniform1i); GL_GET_PROC_ADR(PFNGLUNIFORM1FPROC, glUniform1f); GL_GET_PROC_ADR(PFNGLUNIFORM2FPROC, glUniform2f); GL_GET_PROC_ADR(PFNGLUNIFORM2IPROC, glUniform2i); GL_GET_PROC_ADR(PFNGLUNIFORM4IPROC, glUniform4i); GL_GET_PROC_ADR(PFNGLUNIFORM4FPROC, glUniform4f); GL_GET_PROC_ADR(PFNGLUNIFORM3FVPROC, glUniform3fv); GL_GET_PROC_ADR(PFNGLUNIFORM4FVPROC, glUniform4fv); GL_GET_PROC_ADR(PFNGLDETACHSHADERPROC, glDetachShader); GL_GET_PROC_ADR(PFNGLDELETESHADERPROC, glDeleteShader); GL_GET_PROC_ADR(PFNGLDELETEPROGRAMPROC, glDeleteProgram); GL_GET_PROC_ADR(PFNGLGETPROGRAMINFOLOGPROC, glGetProgramInfoLog); GL_GET_PROC_ADR(PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog); GL_GET_PROC_ADR(PFNGLGETSHADERIVPROC, glGetShaderiv); GL_GET_PROC_ADR(PFNGLGETPROGRAMIVPROC, glGetProgramiv); GL_GET_PROC_ADR(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray); GL_GET_PROC_ADR(PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray); GL_GET_PROC_ADR(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer); GL_GET_PROC_ADR(PFNGLBINDATTRIBLOCATIONPROC, glBindAttribLocation); GL_GET_PROC_ADR(PFNGLVERTEXATTRIB1FPROC, glVertexAttrib1f); GL_GET_PROC_ADR(PFNGLVERTEXATTRIB4FPROC, glVertexAttrib4f); GL_GET_PROC_ADR(PFNGLVERTEXATTRIB4FVPROC, glVertexAttrib4fv); GL_GET_PROC_ADR(PFNGLDEPTHRANGEFPROC, glDepthRangef); GL_GET_PROC_ADR(PFNGLCLEARDEPTHFPROC, glClearDepthf); GL_GET_PROC_ADR(PFNGLDRAWBUFFERSPROC, glDrawBuffers); GL_GET_PROC_ADR(PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer); GL_GET_PROC_ADR(PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers); GL_GET_PROC_ADR(PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers); GL_GET_PROC_ADR(PFNGLFRAMEBUFFERTEXTURE2DPROC, glFramebufferTexture2D); GL_GET_PROC_ADR(PFNGLTEXIMAGE2DMULTISAMPLEPROC, glTexImage2DMultisample); GL_GET_PROC_ADR(PFNGLTEXSTORAGE2DMULTISAMPLEPROC, glTexStorage2DMultisample); GL_GET_PROC_ADR(PFNGLGENRENDERBUFFERSPROC, glGenRenderbuffers); GL_GET_PROC_ADR(PFNGLBINDRENDERBUFFERPROC, glBindRenderbuffer); GL_GET_PROC_ADR(PFNGLRENDERBUFFERSTORAGEPROC, glRenderbufferStorage); GL_GET_PROC_ADR(PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer); GL_GET_PROC_ADR(PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers); GL_GET_PROC_ADR(PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus); GL_GET_PROC_ADR(PFNGLBLITFRAMEBUFFERPROC, glBlitFramebuffer); GL_GET_PROC_ADR(PFNGLGENVERTEXARRAYSPROC, glGenVertexArrays); GL_GET_PROC_ADR(PFNGLBINDVERTEXARRAYPROC, glBindVertexArray); GL_GET_PROC_ADR(PFNGLDELETEVERTEXARRAYSPROC, glDeleteVertexArrays); GL_GET_PROC_ADR(PFNGLGENBUFFERSPROC, glGenBuffers); GL_GET_PROC_ADR(PFNGLBINDBUFFERPROC, glBindBuffer); GL_GET_PROC_ADR(PFNGLBUFFERDATAPROC, glBufferData); GL_GET_PROC_ADR(PFNGLMAPBUFFERPROC, glMapBuffer); GL_GET_PROC_ADR(PFNGLMAPBUFFERRANGEPROC, glMapBufferRange); GL_GET_PROC_ADR(PFNGLUNMAPBUFFERPROC, glUnmapBuffer); GL_GET_PROC_ADR(PFNGLDELETEBUFFERSPROC, glDeleteBuffers); GL_GET_PROC_ADR(PFNGLBINDIMAGETEXTUREPROC, glBindImageTexture); GL_GET_PROC_ADR(PFNGLMEMORYBARRIERPROC, glMemoryBarrier); GL_GET_PROC_ADR(PFNGLGETSTRINGIPROC, glGetStringi); GL_GET_PROC_ADR(PFNGLINVALIDATEFRAMEBUFFERPROC, glInvalidateFramebuffer); GL_GET_PROC_ADR(PFNGLBUFFERSTORAGEPROC, glBufferStorage); GL_GET_PROC_ADR(PFNGLFENCESYNCPROC, glFenceSync); GL_GET_PROC_ADR(PFNGLCLIENTWAITSYNCPROC, glClientWaitSync); GL_GET_PROC_ADR(PFNGLDELETESYNCPROC, glDeleteSync); GL_GET_PROC_ADR(PFNGLGETUNIFORMBLOCKINDEXPROC, glGetUniformBlockIndex); GL_GET_PROC_ADR(PFNGLUNIFORMBLOCKBINDINGPROC, glUniformBlockBinding); GL_GET_PROC_ADR(PFNGLGETACTIVEUNIFORMBLOCKIVPROC, glGetActiveUniformBlockiv); GL_GET_PROC_ADR(PFNGLGETUNIFORMINDICESPROC, glGetUniformIndices); GL_GET_PROC_ADR(PFNGLGETACTIVEUNIFORMSIVPROC, glGetActiveUniformsiv); GL_GET_PROC_ADR(PFNGLBINDBUFFERBASEPROC, glBindBufferBase); GL_GET_PROC_ADR(PFNGLBUFFERSUBDATAPROC, glBufferSubData); GL_GET_PROC_ADR(PFNGLGETPROGRAMBINARYPROC, glGetProgramBinary); GL_GET_PROC_ADR(PFNGLPROGRAMBINARYPROC, glProgramBinary); GL_GET_PROC_ADR(PFNGLPROGRAMPARAMETERIPROC, glProgramParameteri); GL_GET_PROC_ADR(PFNGLTEXSTORAGE2DPROC, glTexStorage2D); GL_GET_PROC_ADR(PFNGLTEXTURESTORAGE2DPROC, glTextureStorage2D); GL_GET_PROC_ADR(PFNGLTEXTURESUBIMAGE2DPROC, glTextureSubImage2D); GL_GET_PROC_ADR(PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC, glTextureStorage2DMultisample); GL_GET_PROC_ADR(PFNGLTEXTUREPARAMETERIPROC, glTextureParameteri); GL_GET_PROC_ADR(PFNGLTEXTUREPARAMETERFPROC, glTextureParameterf); GL_GET_PROC_ADR(PFNGLCREATETEXTURESPROC, glCreateTextures); GL_GET_PROC_ADR(PFNGLCREATEBUFFERSPROC, glCreateBuffers); GL_GET_PROC_ADR(PFNGLCREATEFRAMEBUFFERSPROC, glCreateFramebuffers); GL_GET_PROC_ADR(PFNGLNAMEDFRAMEBUFFERTEXTUREPROC, glNamedFramebufferTexture); GL_GET_PROC_ADR(PFNGLDRAWELEMENTSBASEVERTEXPROC, glDrawElementsBaseVertex); GL_GET_PROC_ADR(PFNGLFLUSHMAPPEDBUFFERRANGEPROC, glFlushMappedBufferRange); }
void gl_funcs_init(void) { // получаем адреса ф-ий OpenGL TRACE_MSG("init OpenGL functions pointers\n"); #ifndef __gl_h_ // 1.0 GL_GET_PROC_ADR(PFNGLGENTEXTURES, glGenTextures); GL_GET_PROC_ADR(PFNGLDELETETEXTURES, glDeleteTextures); GL_GET_PROC_ADR(PFNGLBINDTEXTURE, glBindTexture); GL_GET_PROC_ADR(PFNGLDRAWARRAYS, glDrawArrays); GL_GET_PROC_ADR(PFNGLDRAWELEMENTS, glDrawElements); // 1.1 GL_GET_PROC_ADR(PFNGLVIEWPORT, glViewport); GL_GET_PROC_ADR(PFNGLCLEAR, glClear); GL_GET_PROC_ADR(PFNGLCLEARCOLOR, glClearColor); GL_GET_PROC_ADR(PFNGLCLEARDEPTH, glClearDepth); GL_GET_PROC_ADR(PFNGLDEPTHFUNC, glDepthFunc); GL_GET_PROC_ADR(PFNGLGETERROR, glGetError); GL_GET_PROC_ADR(PFNGLGETINTEGERV, glGetIntegerv); GL_GET_PROC_ADR(PFNGLGETSTRING, glGetString); GL_GET_PROC_ADR(PFNGLDISABLE, glDisable); GL_GET_PROC_ADR(PFNGLENABLE, glEnable); GL_GET_PROC_ADR(PFNGLFRONTFACE, glFrontFace); GL_GET_PROC_ADR(PFNGLCULLFACE, glCullFace); GL_GET_PROC_ADR(PFNGLTEXPARAMETERI, glTexParameteri); GL_GET_PROC_ADR(PFNGLTEXIMAGE1D, glTexImage1D); GL_GET_PROC_ADR(PFNGLTEXIMAGE2D, glTexImage2D); #endif GL_GET_PROC_ADR(PFNGLTEXIMAGE3DPROC, glTexImage3D); GL_GET_PROC_ADR(PFNGLGENVERTEXARRAYSPROC, glGenVertexArrays); GL_GET_PROC_ADR(PFNGLBINDVERTEXARRAYPROC, glBindVertexArray); GL_GET_PROC_ADR(PFNGLGENBUFFERSPROC, glGenBuffers); GL_GET_PROC_ADR(PFNGLBINDBUFFERPROC, glBindBuffer); GL_GET_PROC_ADR(PFNGLBUFFERDATAPROC, glBufferData); GL_GET_PROC_ADR(PFNGLGETBUFFERSUBDATAPROC, glGetBufferSubData); GL_GET_PROC_ADR(PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer); GL_GET_PROC_ADR(PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray); GL_GET_PROC_ADR(PFNGLACTIVETEXTUREPROC, glActiveTexture); GL_GET_PROC_ADR(PFNGLDELETEBUFFERSPROC, glDeleteBuffers); GL_GET_PROC_ADR(PFNGLGETBUFFERPARAMETERIVPROC, glGetBufferParameteriv); GL_GET_PROC_ADR(PFNGLDELETEVERTEXARRAYSPROC, glDeleteVertexArrays); GL_GET_PROC_ADR(PFNGLBINDFRAMEBUFFERPROC, glBindFramebuffer); GL_GET_PROC_ADR(PFNGLGENFRAMEBUFFERSPROC, glGenFramebuffers); GL_GET_PROC_ADR(PFNGLDELETEFRAMEBUFFERSPROC, glDeleteFramebuffers); GL_GET_PROC_ADR(PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetFramebufferAttachmentParameteriv); GL_GET_PROC_ADR(PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus); GL_GET_PROC_ADR(PFNGLFRAMEBUFFERTEXTURE1DPROC, glFramebufferTexture1D); GL_GET_PROC_ADR(PFNGLFRAMEBUFFERTEXTURE2DPROC, glFramebufferTexture2D); GL_GET_PROC_ADR(PFNGLFRAMEBUFFERTEXTURE3DPROC, glFramebufferTexture3D); GL_GET_PROC_ADR(PFNGLRENDERBUFFERSTORAGEPROC, glRenderbufferStorage); GL_GET_PROC_ADR(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC, glRenderbufferStorageMultisample); GL_GET_PROC_ADR(PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers); GL_GET_PROC_ADR(PFNGLBINDRENDERBUFFERPROC, glBindRenderbuffer); GL_GET_PROC_ADR(PFNGLDELETERENDERBUFFERSPROC, glDeleteRenderbuffers); GL_GET_PROC_ADR(PFNGLFRAMEBUFFERRENDERBUFFERPROC, glFramebufferRenderbuffer); GL_GET_PROC_ADR(PFNGLGENRENDERBUFFERSPROC, glGenRenderbuffers); GL_GET_PROC_ADR(PFNGLSHADERSOURCEPROC, glShaderSource); GL_GET_PROC_ADR(PFNGLCOMPILESHADERPROC, glCompileShader); GL_GET_PROC_ADR(PFNGLGETSHADERIVPROC, glGetShaderiv); GL_GET_PROC_ADR(PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog); GL_GET_PROC_ADR(PFNGLCREATESHADERPROC, glCreateShader); GL_GET_PROC_ADR(PFNGLDELETESHADERPROC, glDeleteShader); GL_GET_PROC_ADR(PFNGLGETPROGRAMIVPROC, glGetProgramiv); GL_GET_PROC_ADR(PFNGLGETPROGRAMINFOLOGPROC, glGetProgramInfoLog); GL_GET_PROC_ADR(PFNGLVALIDATEPROGRAMPROC, glValidateProgram); GL_GET_PROC_ADR(PFNGLCREATEPROGRAMPROC, glCreateProgram); GL_GET_PROC_ADR(PFNGLDELETEPROGRAMPROC, glDeleteProgram); GL_GET_PROC_ADR(PFNGLLINKPROGRAMPROC, glLinkProgram); GL_GET_PROC_ADR(PFNGLATTACHSHADERPROC, glAttachShader); GL_GET_PROC_ADR(PFNGLDETACHSHADERPROC, glDetachShader); GL_GET_PROC_ADR(PFNGLGETATTRIBLOCATIONPROC, glGetAttribLocation); GL_GET_PROC_ADR(PFNGLGETUNIFORMLOCATIONPROC, glGetUniformLocation); GL_GET_PROC_ADR(PFNGLUNIFORMMATRIX4FVPROC, glUniformMatrix4fv); GL_GET_PROC_ADR(PFNGLUSEPROGRAMPROC, glUseProgram); GL_GET_PROC_ADR(PFNGLUNIFORM1IPROC, glUniform1i); GL_GET_PROC_ADR(PFNGLUNIFORM1FPROC, glUniform1f); GL_GET_PROC_ADR(PFNGLUNIFORM1FVPROC, glUniform1fv); GL_GET_PROC_ADR(PFNGLUNIFORM1DPROC, glUniform1d); GL_GET_PROC_ADR(PFNGLUNIFORM1DVPROC, glUniform1dv); GL_GET_PROC_ADR(PFNGLUNIFORM2IPROC, glUniform2i); GL_GET_PROC_ADR(PFNGLUNIFORM2FPROC, glUniform2f); GL_GET_PROC_ADR(PFNGLUNIFORM2FVPROC, glUniform2fv); GL_GET_PROC_ADR(PFNGLUNIFORM2DPROC, glUniform2d); GL_GET_PROC_ADR(PFNGLUNIFORM2DVPROC, glUniform2dv); GL_GET_PROC_ADR(PFNGLUNIFORM3IPROC, glUniform3i); GL_GET_PROC_ADR(PFNGLUNIFORM3FPROC, glUniform3f); GL_GET_PROC_ADR(PFNGLUNIFORM3FVPROC, glUniform3fv); GL_GET_PROC_ADR(PFNGLUNIFORM3DPROC, glUniform3d); GL_GET_PROC_ADR(PFNGLUNIFORM3DVPROC, glUniform3dv); GL_GET_PROC_ADR(PFNGLUNIFORMMATRIX2FVPROC, glUniformMatrix2fv); GL_GET_PROC_ADR(PFNGLUNIFORMMATRIX2DVPROC, glUniformMatrix2dv); GL_GET_PROC_ADR(PFNGLUNIFORMMATRIX3FVPROC, glUniformMatrix3fv); GL_GET_PROC_ADR(PFNGLUNIFORMMATRIX3DVPROC, glUniformMatrix3dv); GL_GET_PROC_ADR(PFNGLUNIFORMMATRIX4DVPROC, glUniformMatrix4dv); }