111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright 2013 The Android Open Source Project 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Licensed under the Apache License, Version 2.0 (the "License"); 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * you may not use this file except in compliance with the License. 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * You may obtain a copy of the License at 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * http://www.apache.org/licenses/LICENSE-2.0 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Unless required by applicable law or agreed to in writing, software 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * distributed under the License is distributed on an "AS IS" BASIS, 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * See the License for the specific language governing permissions and 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * limitations under the License. 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <EGL/egl.h> 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include "gl3stub.h" 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGLboolean gl3stubInit() 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FIND_PROC(s) s = (void*)eglGetProcAddress(#s); 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glReadBuffer ); 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glDrawRangeElements ); 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glTexImage3D ); 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glTexSubImage3D ); 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glCopyTexSubImage3D ); 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glCompressedTexImage3D ); 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glCompressedTexSubImage3D ); 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGenQueries ); 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glDeleteQueries ); 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glIsQuery ); 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glBeginQuery ); 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glEndQuery ); 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetQueryiv ); 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetQueryObjectuiv ); 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUnmapBuffer ); 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetBufferPointerv ); 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glDrawBuffers ); 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniformMatrix2x3fv ); 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniformMatrix3x2fv ); 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniformMatrix2x4fv ); 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniformMatrix4x2fv ); 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniformMatrix3x4fv ); 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniformMatrix4x3fv ); 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glBlitFramebuffer ); 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glRenderbufferStorageMultisample ); 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glFramebufferTextureLayer ); 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glMapBufferRange ); 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glFlushMappedBufferRange ); 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glBindVertexArray ); 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glDeleteVertexArrays ); 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGenVertexArrays ); 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glIsVertexArray ); 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetIntegeri_v ); 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glBeginTransformFeedback ); 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glEndTransformFeedback ); 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glBindBufferRange ); 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glBindBufferBase ); 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glTransformFeedbackVaryings ); 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetTransformFeedbackVarying ); 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glVertexAttribIPointer ); 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetVertexAttribIiv ); 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetVertexAttribIuiv ); 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glVertexAttribI4i ); 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glVertexAttribI4ui ); 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glVertexAttribI4iv ); 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glVertexAttribI4uiv ); 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetUniformuiv ); 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetFragDataLocation ); 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniform1ui ); 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniform2ui ); 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniform3ui ); 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniform4ui ); 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniform1uiv ); 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniform2uiv ); 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniform3uiv ); 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniform4uiv ); 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glClearBufferiv ); 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glClearBufferuiv ); 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glClearBufferfv ); 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glClearBufferfi ); 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetStringi ); 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glCopyBufferSubData ); 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetUniformIndices ); 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetActiveUniformsiv ); 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetUniformBlockIndex ); 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetActiveUniformBlockiv ); 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetActiveUniformBlockName ); 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glUniformBlockBinding ); 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glDrawArraysInstanced ); 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glDrawElementsInstanced ); 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glFenceSync ); 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glIsSync ); 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glDeleteSync ); 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glClientWaitSync ); 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glWaitSync ); 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetInteger64v ); 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetSynciv ); 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetInteger64i_v ); 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetBufferParameteri64v ); 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGenSamplers ); 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glDeleteSamplers ); 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glIsSampler ); 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glBindSampler ); 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glSamplerParameteri ); 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glSamplerParameteriv ); 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glSamplerParameterf ); 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glSamplerParameterfv ); 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetSamplerParameteriv ); 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetSamplerParameterfv ); 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glVertexAttribDivisor ); 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glBindTransformFeedback ); 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glDeleteTransformFeedbacks ); 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGenTransformFeedbacks ); 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glIsTransformFeedback ); 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glPauseTransformFeedback ); 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glResumeTransformFeedback ); 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetProgramBinary ); 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glProgramBinary ); 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glProgramParameteri ); 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glInvalidateFramebuffer ); 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glInvalidateSubFramebuffer ); 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glTexStorage2D ); 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glTexStorage3D ); 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FIND_PROC( glGetInternalformativ ); 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#undef FIND_PROC 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if( !glReadBuffer || !glDrawRangeElements || !glTexImage3D || !glTexSubImage3D 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glCopyTexSubImage3D || !glCompressedTexImage3D 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glCompressedTexSubImage3D || !glGenQueries || !glDeleteQueries 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glIsQuery || !glBeginQuery || !glEndQuery || !glGetQueryiv 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetQueryObjectuiv || !glUnmapBuffer || !glGetBufferPointerv 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glDrawBuffers || !glUniformMatrix2x3fv || !glUniformMatrix3x2fv 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glUniformMatrix2x4fv || !glUniformMatrix4x2fv || !glUniformMatrix3x4fv 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glUniformMatrix4x3fv || !glBlitFramebuffer 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glRenderbufferStorageMultisample || !glFramebufferTextureLayer 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glMapBufferRange || !glFlushMappedBufferRange || !glBindVertexArray 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glDeleteVertexArrays || !glGenVertexArrays || !glIsVertexArray 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetIntegeri_v || !glBeginTransformFeedback || !glEndTransformFeedback 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glBindBufferRange || !glBindBufferBase || !glTransformFeedbackVaryings 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetTransformFeedbackVarying || !glVertexAttribIPointer 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetVertexAttribIiv || !glGetVertexAttribIuiv || !glVertexAttribI4i 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glVertexAttribI4ui || !glVertexAttribI4iv || !glVertexAttribI4uiv 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetUniformuiv || !glGetFragDataLocation || !glUniform1ui 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glUniform2ui || !glUniform3ui || !glUniform4ui || !glUniform1uiv 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glUniform2uiv || !glUniform3uiv || !glUniform4uiv || !glClearBufferiv 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glClearBufferuiv || !glClearBufferfv || !glClearBufferfi || !glGetStringi 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glCopyBufferSubData || !glGetUniformIndices || !glGetActiveUniformsiv 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetUniformBlockIndex || !glGetActiveUniformBlockiv 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetActiveUniformBlockName || !glUniformBlockBinding 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glDrawArraysInstanced || !glDrawElementsInstanced || !glFenceSync 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glIsSync || !glDeleteSync || !glClientWaitSync || !glWaitSync 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetInteger64v || !glGetSynciv || !glGetInteger64i_v 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetBufferParameteri64v || !glGenSamplers || !glDeleteSamplers 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glIsSampler || !glBindSampler || !glSamplerParameteri 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glSamplerParameteriv || !glSamplerParameterf || !glSamplerParameterfv 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetSamplerParameteriv || !glGetSamplerParameterfv 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glVertexAttribDivisor || !glBindTransformFeedback 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glDeleteTransformFeedbacks || !glGenTransformFeedbacks 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glIsTransformFeedback || !glPauseTransformFeedback 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glResumeTransformFeedback || !glGetProgramBinary || !glProgramBinary 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glProgramParameteri || !glInvalidateFramebuffer 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glInvalidateSubFramebuffer || !glTexStorage2D || !glTexStorage3D 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert || !glGetInternalformativ ) 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return GL_FALSE; 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return GL_TRUE; 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Function pointer definitions */GL_APICALL void (* GL_APIENTRY glReadBuffer)( GLenum mode ); 17411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glDrawRangeElements)( GLenum mode, 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint start, 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint end, 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum type, 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLvoid* indices ); 18011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glTexImage3D)( GLenum target, 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint level, 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint internalformat, 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei width, 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei height, 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei depth, 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint border, 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum format, 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum type, 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLvoid* pixels ); 19011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glTexSubImage3D)( GLenum target, 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint level, 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint xoffset, 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint yoffset, 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint zoffset, 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei width, 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei height, 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei depth, 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum format, 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum type, 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLvoid* pixels ); 20111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glCopyTexSubImage3D)( GLenum target, 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint level, 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint xoffset, 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint yoffset, 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint zoffset, 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint x, 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint y, 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei width, 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei height ); 21011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glCompressedTexImage3D)( GLenum target, 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint level, 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum internalformat, 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei width, 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei height, 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei depth, 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint border, 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei imageSize, 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLvoid* data ); 21911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glCompressedTexSubImage3D)( GLenum target, 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint level, 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint xoffset, 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint yoffset, 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint zoffset, 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei width, 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei height, 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei depth, 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum format, 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei imageSize, 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLvoid* data ); 23011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGenQueries)( GLsizei n, GLuint* ids ); 23111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glDeleteQueries)( GLsizei n, const GLuint* ids ); 23211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLboolean (* GL_APIENTRY glIsQuery)( GLuint id ); 23311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glBeginQuery)( GLenum target, GLuint id ); 23411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glEndQuery)( GLenum target ); 23511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetQueryiv)( GLenum target, GLenum pname, GLint* params ); 23611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetQueryObjectuiv)( GLuint id, 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint* params ); 23911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLboolean (* GL_APIENTRY glUnmapBuffer)( GLenum target ); 24011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetBufferPointerv)( GLenum target, 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLvoid** params ); 24311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glDrawBuffers)( GLsizei n, const GLenum* bufs ); 24411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniformMatrix2x3fv)( GLint location, 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLboolean transpose, 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLfloat* value ); 24811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniformMatrix3x2fv)( GLint location, 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLboolean transpose, 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLfloat* value ); 25211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniformMatrix2x4fv)( GLint location, 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLboolean transpose, 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLfloat* value ); 25611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniformMatrix4x2fv)( GLint location, 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLboolean transpose, 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLfloat* value ); 26011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniformMatrix3x4fv)( GLint location, 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLboolean transpose, 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLfloat* value ); 26411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniformMatrix4x3fv)( GLint location, 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLboolean transpose, 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLfloat* value ); 26811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glBlitFramebuffer)( GLint srcX0, 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint srcY0, 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint srcX1, 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint srcY1, 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint dstX0, 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint dstY0, 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint dstX1, 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint dstY1, 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLbitfield mask, 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum filter ); 27811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glRenderbufferStorageMultisample)( GLenum target, 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei samples, 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum internalformat, 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei width, 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei height ); 28311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glFramebufferTextureLayer)( GLenum target, 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum attachment, 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint texture, 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint level, 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint layer ); 28811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLvoid* (* GL_APIENTRY glMapBufferRange)( GLenum target, 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLintptr offset, 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizeiptr length, 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLbitfield access ); 29211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glFlushMappedBufferRange)( GLenum target, 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLintptr offset, 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizeiptr length ); 29511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glBindVertexArray)( GLuint array ); 29611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glDeleteVertexArrays)( GLsizei n, const GLuint* arrays ); 29711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGenVertexArrays)( GLsizei n, GLuint* arrays ); 29811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLboolean (* GL_APIENTRY glIsVertexArray)( GLuint array ); 29911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetIntegeri_v)( GLenum target, 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint index, 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint* data ); 30211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glBeginTransformFeedback)( GLenum primitiveMode ); 30311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glEndTransformFeedback)( void ); 30411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glBindBufferRange)( GLenum target, 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint index, 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint buffer, 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLintptr offset, 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizeiptr size ); 30911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glBindBufferBase)( GLenum target, 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint index, 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint buffer ); 31211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glTransformFeedbackVaryings)( GLuint program, 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLchar* const * varyings, 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum bufferMode ); 31611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetTransformFeedbackVarying)( GLuint program, 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint index, 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei bufSize, 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei* length, 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei* size, 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum* type, 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLchar* name ); 32311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glVertexAttribIPointer)( GLuint index, 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint size, 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum type, 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei stride, 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLvoid* pointer ); 32811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetVertexAttribIiv)( GLuint index, 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint* params ); 33111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetVertexAttribIuiv)( GLuint index, 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint* params ); 33411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glVertexAttribI4i)( GLuint index, 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint x, 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint y, 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint z, 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint w ); 33911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glVertexAttribI4ui)( GLuint index, 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint x, 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint y, 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint z, 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint w ); 34411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glVertexAttribI4iv)( GLuint index, const GLint* v ); 34511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glVertexAttribI4uiv)( GLuint index, const GLuint* v ); 34611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetUniformuiv)( GLuint program, 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint location, 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint* params ); 34911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLint (* GL_APIENTRY glGetFragDataLocation)( GLuint program, 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLchar *name ); 35111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniform1ui)( GLint location, GLuint v0 ); 35211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniform2ui)( GLint location, GLuint v0, GLuint v1 ); 35311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniform3ui)( GLint location, 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint v0, 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint v1, 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint v2 ); 35711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniform4ui)( GLint location, 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint v0, 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint v1, 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint v2, 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint v3 ); 36211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniform1uiv)( GLint location, 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLuint* value ); 36511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniform2uiv)( GLint location, 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLuint* value ); 36811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniform3uiv)( GLint location, 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLuint* value ); 37111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniform4uiv)( GLint location, 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLuint* value ); 37411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glClearBufferiv)( GLenum buffer, 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint drawbuffer, 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLint* value ); 37711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glClearBufferuiv)( GLenum buffer, 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint drawbuffer, 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLuint* value ); 38011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glClearBufferfv)( GLenum buffer, 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint drawbuffer, 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLfloat* value ); 38311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glClearBufferfi)( GLenum buffer, 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint drawbuffer, 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLfloat depth, 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint stencil ); 38711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL const GLubyte* (* GL_APIENTRY glGetStringi)( GLenum name, GLuint index ); 38811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glCopyBufferSubData)( GLenum readTarget, 38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum writeTarget, 39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLintptr readOffset, 39111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLintptr writeOffset, 39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizeiptr size ); 39311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetUniformIndices)( GLuint program, 39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei uniformCount, 39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLchar* const * uniformNames, 39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint* uniformIndices ); 39711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetActiveUniformsiv)( GLuint program, 39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei uniformCount, 39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLuint* uniformIndices, 40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint* params ); 40211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLuint (* GL_APIENTRY glGetUniformBlockIndex)( GLuint program, 40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLchar* uniformBlockName ); 40411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetActiveUniformBlockiv)( GLuint program, 40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint uniformBlockIndex, 40611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 40711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint* params ); 40811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetActiveUniformBlockName)( GLuint program, 40911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint uniformBlockIndex, 41011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei bufSize, 41111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei* length, 41211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLchar* uniformBlockName ); 41311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glUniformBlockBinding)( GLuint program, 41411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint uniformBlockIndex, 41511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint uniformBlockBinding ); 41611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glDrawArraysInstanced)( GLenum mode, 41711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint first, 41811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 41911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei instanceCount ); 42011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glDrawElementsInstanced)( GLenum mode, 42111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei count, 42211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum type, 42311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLvoid* indices, 42411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei instanceCount ); 42511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLsync (* GL_APIENTRY glFenceSync)( GLenum condition, GLbitfield flags ); 42611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLboolean (* GL_APIENTRY glIsSync)( GLsync sync ); 42711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glDeleteSync)( GLsync sync ); 42811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLenum (* GL_APIENTRY glClientWaitSync)( GLsync sync, 42911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLbitfield flags, 43011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint64 timeout ); 43111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glWaitSync)( GLsync sync, 43211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLbitfield flags, 43311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint64 timeout ); 43411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetInteger64v)( GLenum pname, GLint64* params ); 43511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetSynciv)( GLsync sync, 43611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 43711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei bufSize, 43811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei* length, 43911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint* values ); 44011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetInteger64i_v)( GLenum target, 44111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLuint index, 44211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint64* data ); 44311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetBufferParameteri64v)( GLenum target, 44411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 44511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint64* params ); 44611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGenSamplers)( GLsizei count, GLuint* samplers ); 44711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glDeleteSamplers)( GLsizei count, const GLuint* samplers ); 44811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLboolean (* GL_APIENTRY glIsSampler)( GLuint sampler ); 44911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glBindSampler)( GLuint unit, GLuint sampler ); 45011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glSamplerParameteri)( GLuint sampler, 45111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 45211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint param ); 45311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glSamplerParameteriv)( GLuint sampler, 45411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 45511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLint* param ); 45611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glSamplerParameterf)( GLuint sampler, 45711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 45811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLfloat param ); 45911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glSamplerParameterfv)( GLuint sampler, 46011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 46111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLfloat* param ); 46211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetSamplerParameteriv)( GLuint sampler, 46311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 46411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint* params ); 46511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetSamplerParameterfv)( GLuint sampler, 46611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 46711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLfloat* params ); 46811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glVertexAttribDivisor)( GLuint index, GLuint divisor ); 46911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glBindTransformFeedback)( GLenum target, GLuint id ); 47011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glDeleteTransformFeedbacks)( GLsizei n, const GLuint* ids ); 47111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGenTransformFeedbacks)( GLsizei n, GLuint* ids ); 47211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL GLboolean (* GL_APIENTRY glIsTransformFeedback)( GLuint id ); 47311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glPauseTransformFeedback)( void ); 47411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glResumeTransformFeedback)( void ); 47511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetProgramBinary)( GLuint program, 47611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei bufSize, 47711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei* length, 47811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum* binaryFormat, 47911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLvoid* binary ); 48011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glProgramBinary)( GLuint program, 48111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum binaryFormat, 48211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLvoid* binary, 48311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei length ); 48411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glProgramParameteri)( GLuint program, 48511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 48611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint value ); 48711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glInvalidateFramebuffer)( GLenum target, 48811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei numAttachments, 48911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLenum* attachments ); 49011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glInvalidateSubFramebuffer)( GLenum target, 49111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei numAttachments, 49211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const GLenum* attachments, 49311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint x, 49411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint y, 49511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei width, 49611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei height ); 49711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glTexStorage2D)( GLenum target, 49811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei levels, 49911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum internalformat, 50011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei width, 50111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei height ); 50211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glTexStorage3D)( GLenum target, 50311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei levels, 50411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum internalformat, 50511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei width, 50611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei height, 50711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei depth ); 50811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertGL_APICALL void (* GL_APIENTRY glGetInternalformativ)( GLenum target, 50911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum internalformat, 51011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLenum pname, 51111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLsizei bufSize, 51211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert GLint* params ); 513