text: #ifdef GL_FUNC
  
  #ifdef _WIN32
  GL_FUNC(glActiveTexture, PFNGLACTIVETEXTUREPROC)
  GL_FUNC(glTexSubImage3D, PFNGLTEXSUBIMAGE3DPROC)
  GL_FUNC(glBlendEquation, PFNGLBLENDEQUATIONPROC)
  #endif
  
  GL_FUNC(glEnablei, PFNGLENABLEIPROC)
  GL_FUNC(glDisablei, PFNGLDISABLEIPROC)
  GL_FUNC(glBlendEquationSeparate, PFNGLBLENDEQUATIONSEPARATEPROC)
  GL_FUNC(glBlendFuncSeparate, PFNGLBLENDFUNCSEPARATEPROC)
  GL_FUNC(glBlendFuncSeparatei, PFNGLBLENDFUNCSEPARATEIPROC)
  
  GL_FUNC(glFenceSync, PFNGLFENCESYNCPROC)
  GL_FUNC(glDeleteSync, PFNGLDELETESYNCPROC)
  GL_FUNC(glClientWaitSync, PFNGLCLIENTWAITSYNCPROC)
  GL_FUNC(glWaitSync, PFNGLWAITSYNCPROC)
  
  GL_FUNC(glDrawArraysInstanced, PFNGLDRAWARRAYSINSTANCEDPROC)
  
  GL_FUNC(glBindTextureUnit, PFNGLBINDTEXTUREUNITPROC)
  GL_FUNC(glTextureParameteri, PFNGLTEXTUREPARAMETERIPROC)
  GL_FUNC(glTextureParameterf, PFNGLTEXTUREPARAMETERFPROC)
  GL_FUNC(glClearTexImage, PFNGLCLEARTEXIMAGEPROC)
  GL_FUNC(glGenerateTextureMipmap, PFNGLGENERATETEXTUREMIPMAPPROC)
  GL_FUNC(glGenerateMipmap, PFNGLGENERATEMIPMAPPROC)
  GL_FUNC(glCreateTextures, PFNGLCREATETEXTURESPROC)
  GL_FUNC(glTextureStorage1D, PFNGLTEXTURESTORAGE1DPROC)
  GL_FUNC(glTexStorage1D, PFNGLTEXSTORAGE1DPROC)
  GL_FUNC(glTextureSubImage1D, PFNGLTEXTURESUBIMAGE1DPROC)
  GL_FUNC(glTextureStorage2D, PFNGLTEXTURESTORAGE2DPROC)
  GL_FUNC(glTexStorage2D, PFNGLTEXSTORAGE2DPROC)
  GL_FUNC(glTextureSubImage2D, PFNGLTEXTURESUBIMAGE2DPROC)
  GL_FUNC(glClearTexSubImage, PFNGLCLEARTEXSUBIMAGEPROC)
  GL_FUNC(glTextureStorage3D, PFNGLTEXTURESTORAGE3DPROC)
  GL_FUNC(glTexStorage3D, PFNGLTEXSTORAGE3DPROC)
  GL_FUNC(glTextureSubImage3D, PFNGLTEXTURESUBIMAGE3DPROC)
  GL_FUNC(glGetTextureImage, PFNGLGETTEXTUREIMAGEPROC)
  GL_FUNC(glGetnTexImage, PFNGLGETNTEXIMAGEPROC)
  
  GL_FUNC(glGenVertexArrays, PFNGLGENVERTEXARRAYSPROC)
  GL_FUNC(glCreateVertexArrays, PFNGLCREATEVERTEXARRAYSPROC)
  GL_FUNC(glDeleteVertexArrays, PFNGLDELETEVERTEXARRAYSPROC)
  GL_FUNC(glBindVertexArray, PFNGLBINDVERTEXARRAYPROC)
  GL_FUNC(glEnableVertexArrayAttrib, PFNGLENABLEVERTEXARRAYATTRIBPROC)
  GL_FUNC(glVertexArrayAttribBinding, PFNGLVERTEXARRAYATTRIBBINDINGPROC)
  GL_FUNC(glVertexArrayAttribFormat, PFNGLVERTEXARRAYATTRIBFORMATPROC)
  GL_FUNC(glVertexArrayVertexBuffer, PFNGLVERTEXARRAYVERTEXBUFFERPROC)
  GL_FUNC(glVertexArrayVertexBuffers, PFNGLVERTEXARRAYVERTEXBUFFERSPROC)
  GL_FUNC(glVertexArrayElementBuffer, PFNGLVERTEXARRAYELEMENTBUFFERPROC)
  GL_FUNC(glVertexArrayBindingDivisor, PFNGLVERTEXARRAYBINDINGDIVISORPROC)
  GL_FUNC(glVertexAttribFormat, PFNGLVERTEXATTRIBFORMATPROC)
  
  GL_FUNC(glEnableVertexAttribArray, PFNGLENABLEVERTEXATTRIBARRAYPROC)
  GL_FUNC(glVertexAttribBinding, PFNGLVERTEXATTRIBBINDINGPROC)
  GL_FUNC(glBindVertexBuffer, PFNGLBINDVERTEXBUFFERPROC)
  GL_FUNC(glBindVertexBuffers, PFNGLBINDVERTEXBUFFERSPROC)
  GL_FUNC(glVertexBindingDivisor, PFNGLVERTEXBINDINGDIVISORPROC)
  
  GL_FUNC(glVertexAttribPointer, PFNGLVERTEXATTRIBPOINTERPROC)
  
  GL_FUNC(glGenFramebuffers, PFNGLGENFRAMEBUFFERSPROC)
  GL_FUNC(glCreateFramebuffers, PFNGLCREATEFRAMEBUFFERSPROC)
  GL_FUNC(glDeleteFramebuffers, PFNGLDELETEFRAMEBUFFERSPROC)
  GL_FUNC(glClearNamedFramebufferfv, PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)
  GL_FUNC(glNamedFramebufferTexture, PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)
  GL_FUNC(glNamedFramebufferDrawBuffer, PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)
  GL_FUNC(glNamedFramebufferDrawBuffers, PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)
  GL_FUNC(glNamedFramebufferRenderbuffer, PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)
  
  GL_FUNC(glClearBufferfv, PFNGLCLEARBUFFERFVPROC)
  GL_FUNC(glBindFramebuffer, PFNGLBINDFRAMEBUFFERPROC)
  GL_FUNC(glFramebufferTexture, PFNGLFRAMEBUFFERTEXTUREPROC)
  GL_FUNC(glDrawBuffers, PFNGLDRAWBUFFERSPROC)
  GL_FUNC(glFramebufferRenderbuffer, PFNGLFRAMEBUFFERRENDERBUFFERPROC)
  
  GL_FUNC(glCreateRenderbuffers, PFNGLCREATERENDERBUFFERSPROC)
  GL_FUNC(glNamedRenderbufferStorage, PFNGLNAMEDRENDERBUFFERSTORAGEPROC)
  GL_FUNC(glDeleteRenderbuffers, PFNGLDELETERENDERBUFFERSPROC)
  GL_FUNC(glBindRenderbuffer, PFNGLBINDRENDERBUFFERPROC)
  GL_FUNC(glGenRenderbuffers, PFNGLGENRENDERBUFFERSPROC)
  GL_FUNC(glRenderbufferStorage, PFNGLRENDERBUFFERSTORAGEPROC)
  
  GL_FUNC(glCreateShader, PFNGLCREATESHADERPROC)
  GL_FUNC(glDeleteShader, PFNGLDELETESHADERPROC)
  GL_FUNC(glCreateProgram, PFNGLCREATEPROGRAMPROC)
  GL_FUNC(glDeleteProgram, PFNGLDELETEPROGRAMPROC)
  GL_FUNC(glAttachShader, PFNGLATTACHSHADERPROC)
  GL_FUNC(glGetProgramiv, PFNGLGETPROGRAMIVPROC)
  GL_FUNC(glGetProgramInfoLog, PFNGLGETPROGRAMINFOLOGPROC)
  GL_FUNC(glGetUniformLocation, PFNGLGETUNIFORMLOCATIONPROC)
  GL_FUNC(glGetUniformBlockIndex, PFNGLGETUNIFORMBLOCKINDEXPROC)
  GL_FUNC(glUseProgram, PFNGLUSEPROGRAMPROC)
  GL_FUNC(glLinkProgram, PFNGLLINKPROGRAMPROC)
  GL_FUNC(glCompileShader, PFNGLCOMPILESHADERPROC)
  GL_FUNC(glShaderSource, PFNGLSHADERSOURCEPROC)
  GL_FUNC(glGetShaderiv, PFNGLGETSHADERIVPROC)
  GL_FUNC(glGetShaderInfoLog, PFNGLGETSHADERINFOLOGPROC)
  
  GL_FUNC(glUniform1f, PFNGLUNIFORM1FPROC)
  GL_FUNC(glUniform1i, PFNGLUNIFORM1IPROC)
  GL_FUNC(glUniform2f, PFNGLUNIFORM2FPROC)
  GL_FUNC(glUniform2i, PFNGLUNIFORM2IPROC)
  GL_FUNC(glUniform3f, PFNGLUNIFORM3FPROC)
  GL_FUNC(glUniform3i, PFNGLUNIFORM3IPROC)
  GL_FUNC(glUniform4f, PFNGLUNIFORM4FPROC)
  GL_FUNC(glUniform4i, PFNGLUNIFORM4IPROC)
  GL_FUNC(glUniform1fv, PFNGLUNIFORM1FVPROC)
  GL_FUNC(glUniform1iv, PFNGLUNIFORM1IVPROC)
  GL_FUNC(glUniform2fv, PFNGLUNIFORM2FVPROC)
  GL_FUNC(glUniform2iv, PFNGLUNIFORM2IVPROC)
  GL_FUNC(glUniform3fv, PFNGLUNIFORM3FVPROC)
  GL_FUNC(glUniform3iv, PFNGLUNIFORM3IVPROC)
  GL_FUNC(glUniform4fv, PFNGLUNIFORM4FVPROC)
  GL_FUNC(glUniform4iv, PFNGLUNIFORM4IVPROC)
  GL_FUNC(glUniformMatrix3fv, PFNGLUNIFORMMATRIX3FVPROC)
  GL_FUNC(glUniformMatrix4fv, PFNGLUNIFORMMATRIX4FVPROC)
  
  GL_FUNC(glProgramUniform1f, PFNGLPROGRAMUNIFORM1FPROC)
  GL_FUNC(glProgramUniform1i, PFNGLPROGRAMUNIFORM1IPROC)
  GL_FUNC(glProgramUniform2f, PFNGLPROGRAMUNIFORM2FPROC)
  GL_FUNC(glProgramUniform2i, PFNGLPROGRAMUNIFORM2IPROC)
  GL_FUNC(glProgramUniform3f, PFNGLPROGRAMUNIFORM3FPROC)
  GL_FUNC(glProgramUniform3i, PFNGLPROGRAMUNIFORM3IPROC)
  GL_FUNC(glProgramUniform4f, PFNGLPROGRAMUNIFORM4FPROC)
  GL_FUNC(glProgramUniform4i, PFNGLPROGRAMUNIFORM4IPROC)
  GL_FUNC(glProgramUniform1fv, PFNGLPROGRAMUNIFORM1FVPROC)
  GL_FUNC(glProgramUniform1iv, PFNGLPROGRAMUNIFORM1IVPROC)
  GL_FUNC(glProgramUniform2fv, PFNGLPROGRAMUNIFORM2FVPROC)
  GL_FUNC(glProgramUniform2iv, PFNGLPROGRAMUNIFORM2IVPROC)
  GL_FUNC(glProgramUniform3fv, PFNGLPROGRAMUNIFORM3FVPROC)
  GL_FUNC(glProgramUniform3iv, PFNGLPROGRAMUNIFORM3IVPROC)
  GL_FUNC(glProgramUniform4fv, PFNGLPROGRAMUNIFORM4FVPROC)
  GL_FUNC(glProgramUniform4iv, PFNGLPROGRAMUNIFORM4IVPROC)
  GL_FUNC(glProgramUniformMatrix3fv, PFNGLPROGRAMUNIFORMMATRIX3FVPROC)
  GL_FUNC(glProgramUniformMatrix4fv, PFNGLPROGRAMUNIFORMMATRIX4FVPROC)
  
  GL_FUNC(glCreateBuffers, PFNGLCREATEBUFFERSPROC)
  GL_FUNC(glDeleteBuffers, PFNGLDELETEBUFFERSPROC)
  GL_FUNC(glGenBuffers, PFNGLGENBUFFERSPROC)
  GL_FUNC(glBindBuffer, PFNGLBINDBUFFERPROC)
  GL_FUNC(glBindBufferRange, PFNGLBINDBUFFERRANGEPROC)
  GL_FUNC(glBufferData, PFNGLBUFFERDATAPROC)
  GL_FUNC(glBindBufferBase, PFNGLBINDBUFFERBASEPROC)
  GL_FUNC(glNamedBufferStorage, PFNGLNAMEDBUFFERSTORAGEPROC)
  GL_FUNC(glBufferStorage, PFNGLBUFFERSTORAGEPROC)
  GL_FUNC(glMapNamedBuffer, PFNGLMAPNAMEDBUFFERPROC)
  GL_FUNC(glMapNamedBufferRange, PFNGLMAPNAMEDBUFFERRANGEPROC)
  GL_FUNC(glFlushMappedBufferRange, PFNGLFLUSHMAPPEDBUFFERRANGEPROC)
  GL_FUNC(glFlushMappedNamedBufferRange, PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)
  GL_FUNC(glUnmapNamedBuffer, PFNGLUNMAPNAMEDBUFFERPROC)
  GL_FUNC(glMapBuffer, PFNGLMAPBUFFERPROC)
  GL_FUNC(glMapBufferRange, PFNGLMAPBUFFERRANGEPROC)
  GL_FUNC(glUnmapBuffer, PFNGLUNMAPBUFFERPROC)
  
  GL_FUNC(glMemoryBarrier, PFNGLMEMORYBARRIERPROC)
  
  GL_FUNC(glDebugMessageCallback, PFNGLDEBUGMESSAGECALLBACKPROC)
  GL_FUNC(glDebugMessageControl, PFNGLDEBUGMESSAGECONTROLPROC)
  #endif
  