1 // 2 // Copyright (c) 2015 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 // FunctionsGL.h: Defines the FuntionsGL class to contain loaded GL functions 8 9 #ifndef LIBANGLE_RENDERER_GL_FUNCTIONSGL_H_ 10 #define LIBANGLE_RENDERER_GL_FUNCTIONSGL_H_ 11 12 #include "common/debug.h" 13 #include "libANGLE/Version.h" 14 #include "libANGLE/renderer/gl/functionsgl_enums.h" 15 #include "libANGLE/renderer/gl/functionsgl_typedefs.h" 16 17 namespace rx 18 { 19 20 enum StandardGL 21 { 22 STANDARD_GL_DESKTOP, 23 STANDARD_GL_ES, 24 }; 25 26 class FunctionsGL 27 { 28 public: 29 FunctionsGL(); 30 virtual ~FunctionsGL(); 31 32 void initialize(); 33 34 // Version information 35 gl::Version version; 36 StandardGL standard; 37 GLint profile; 38 bool isAtLeastGL(const gl::Version &glVersion) const; 39 bool isAtMostGL(const gl::Version &glVersion) const; 40 bool isAtLeastGLES(const gl::Version &glesVersion) const; 41 bool isAtMostGLES(const gl::Version &glesVersion) const; 42 43 // Extensions 44 std::vector<std::string> extensions; 45 bool hasExtension(const std::string &ext) const; 46 bool hasGLExtension(const std::string &ext) const; 47 bool hasGLESExtension(const std::string &ext) const; 48 49 // Entry Points 50 // 1.0 51 PFNGLBLENDFUNCPROC blendFunc; 52 PFNGLCLEARPROC clear; 53 PFNGLCLEARCOLORPROC clearColor; 54 PFNGLCLEARDEPTHPROC clearDepth; 55 PFNGLCLEARSTENCILPROC clearStencil; 56 PFNGLCOLORMASKPROC colorMask; 57 PFNGLCULLFACEPROC cullFace; 58 PFNGLDEPTHFUNCPROC depthFunc; 59 PFNGLDEPTHMASKPROC depthMask; 60 PFNGLDEPTHRANGEPROC depthRange; 61 PFNGLDISABLEPROC disable; 62 PFNGLDRAWBUFFERPROC drawBuffer; 63 PFNGLENABLEPROC enable; 64 PFNGLFINISHPROC finish; 65 PFNGLFLUSHPROC flush; 66 PFNGLFRONTFACEPROC frontFace; 67 PFNGLGETBOOLEANVPROC getBooleanv; 68 PFNGLGETDOUBLEVPROC getDoublev; 69 PFNGLGETERRORPROC getError; 70 PFNGLGETFLOATVPROC getFloatv; 71 PFNGLGETINTEGERVPROC getIntegerv; 72 PFNGLGETSTRINGPROC getString; 73 PFNGLGETTEXIMAGEPROC getTexImage; 74 PFNGLGETTEXLEVELPARAMETERFVPROC getTexLevelParameterfv; 75 PFNGLGETTEXLEVELPARAMETERIVPROC getTexLevelParameteriv; 76 PFNGLGETTEXPARAMETERFVPROC getTexParameterfv; 77 PFNGLGETTEXPARAMETERIVPROC getTexParameteriv; 78 PFNGLHINTPROC hint; 79 PFNGLISENABLEDPROC isEnabled; 80 PFNGLLINEWIDTHPROC lineWidth; 81 PFNGLLOGICOPPROC logicOp; 82 PFNGLPIXELSTOREFPROC pixelStoref; 83 PFNGLPIXELSTOREIPROC pixelStorei; 84 PFNGLPOINTSIZEPROC pointSize; 85 PFNGLPOLYGONMODEPROC polygonMode; 86 PFNGLREADBUFFERPROC readBuffer; 87 PFNGLREADPIXELSPROC readPixels; 88 PFNGLSCISSORPROC scissor; 89 PFNGLSTENCILFUNCPROC stencilFunc; 90 PFNGLSTENCILMASKPROC stencilMask; 91 PFNGLSTENCILOPPROC stencilOp; 92 PFNGLTEXIMAGE1DPROC texImage1D; 93 PFNGLTEXIMAGE2DPROC texImage2D; 94 PFNGLTEXPARAMETERFPROC texParameterf; 95 PFNGLTEXPARAMETERFVPROC texParameterfv; 96 PFNGLTEXPARAMETERIPROC texParameteri; 97 PFNGLTEXPARAMETERIVPROC texParameteriv; 98 PFNGLVIEWPORTPROC viewport; 99 100 // 1.1 101 PFNGLBINDTEXTUREPROC bindTexture; 102 PFNGLCOPYTEXIMAGE1DPROC copyTexImage1D; 103 PFNGLCOPYTEXIMAGE2DPROC copyTexImage2D; 104 PFNGLCOPYTEXSUBIMAGE1DPROC copyTexSubImage1D; 105 PFNGLCOPYTEXSUBIMAGE2DPROC copyTexSubImage2D; 106 PFNGLDELETETEXTURESPROC deleteTextures; 107 PFNGLDRAWARRAYSPROC drawArrays; 108 PFNGLDRAWELEMENTSPROC drawElements; 109 PFNGLGENTEXTURESPROC genTextures; 110 PFNGLISTEXTUREPROC isTexture; 111 PFNGLPOLYGONOFFSETPROC polygonOffset; 112 PFNGLTEXSUBIMAGE1DPROC texSubImage1D; 113 PFNGLTEXSUBIMAGE2DPROC texSubImage2D; 114 115 // 1.2 116 PFNGLBLENDCOLORPROC blendColor; 117 PFNGLBLENDEQUATIONPROC blendEquation; 118 PFNGLCOPYTEXSUBIMAGE3DPROC copyTexSubImage3D; 119 PFNGLDRAWRANGEELEMENTSPROC drawRangeElements; 120 PFNGLTEXIMAGE3DPROC texImage3D; 121 PFNGLTEXSUBIMAGE3DPROC texSubImage3D; 122 123 // 1.2 Extensions 124 PFNGLDELETEFENCESNVPROC deleteFencesNV; 125 PFNGLGENFENCESNVPROC genFencesNV; 126 PFNGLISFENCENVPROC isFenceNV; 127 PFNGLTESTFENCENVPROC testFenceNV; 128 PFNGLGETFENCEIVNVPROC getFenceivNV; 129 PFNGLFINISHFENCENVPROC finishFenceNV; 130 PFNGLSETFENCENVPROC setFenceNV; 131 132 // 1.3 133 PFNGLACTIVETEXTUREPROC activeTexture; 134 PFNGLCOMPRESSEDTEXIMAGE1DPROC compressedTexImage1D; 135 PFNGLCOMPRESSEDTEXIMAGE2DPROC compressedTexImage2D; 136 PFNGLCOMPRESSEDTEXIMAGE3DPROC compressedTexImage3D; 137 PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC compressedTexSubImage1D; 138 PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC compressedTexSubImage2D; 139 PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC compressedTexSubImage3D; 140 PFNGLGETCOMPRESSEDTEXIMAGEPROC getCompressedTexImage; 141 PFNGLSAMPLECOVERAGEPROC sampleCoverage; 142 143 // 1.4 144 PFNGLBLENDFUNCSEPARATEPROC blendFuncSeparate; 145 PFNGLMULTIDRAWARRAYSPROC multiDrawArrays; 146 PFNGLMULTIDRAWELEMENTSPROC multiDrawElements; 147 PFNGLPOINTPARAMETERFPROC pointParameterf; 148 PFNGLPOINTPARAMETERFVPROC pointParameterfv; 149 PFNGLPOINTPARAMETERIPROC pointParameteri; 150 PFNGLPOINTPARAMETERIVPROC pointParameteriv; 151 152 // 1.5 153 PFNGLBEGINQUERYPROC beginQuery; 154 PFNGLBINDBUFFERPROC bindBuffer; 155 PFNGLBUFFERDATAPROC bufferData; 156 PFNGLBUFFERSUBDATAPROC bufferSubData; 157 PFNGLDELETEBUFFERSPROC deleteBuffers; 158 PFNGLDELETEQUERIESPROC deleteQueries; 159 PFNGLENDQUERYPROC endQuery; 160 PFNGLGENBUFFERSPROC genBuffers; 161 PFNGLGENQUERIESPROC genQueries; 162 PFNGLGETBUFFERPARAMETERIVPROC getBufferParameteriv; 163 PFNGLGETBUFFERPOINTERVPROC getBufferPointerv; 164 PFNGLGETBUFFERSUBDATAPROC getBufferSubData; 165 PFNGLGETQUERYOBJECTIVPROC getQueryObjectiv; 166 PFNGLGETQUERYOBJECTUIVPROC getQueryObjectuiv; 167 PFNGLGETQUERYIVPROC getQueryiv; 168 PFNGLISBUFFERPROC isBuffer; 169 PFNGLISQUERYPROC isQuery; 170 PFNGLMAPBUFFERPROC mapBuffer; 171 PFNGLUNMAPBUFFERPROC unmapBuffer; 172 173 // 2.0 174 PFNGLATTACHSHADERPROC attachShader; 175 PFNGLBINDATTRIBLOCATIONPROC bindAttribLocation; 176 PFNGLBLENDEQUATIONSEPARATEPROC blendEquationSeparate; 177 PFNGLCOMPILESHADERPROC compileShader; 178 PFNGLCREATEPROGRAMPROC createProgram; 179 PFNGLCREATESHADERPROC createShader; 180 PFNGLDELETEPROGRAMPROC deleteProgram; 181 PFNGLDELETESHADERPROC deleteShader; 182 PFNGLDETACHSHADERPROC detachShader; 183 PFNGLDISABLEVERTEXATTRIBARRAYPROC disableVertexAttribArray; 184 PFNGLDRAWBUFFERSPROC drawBuffers; 185 PFNGLENABLEVERTEXATTRIBARRAYPROC enableVertexAttribArray; 186 PFNGLGETACTIVEATTRIBPROC getActiveAttrib; 187 PFNGLGETACTIVEUNIFORMPROC getActiveUniform; 188 PFNGLGETATTACHEDSHADERSPROC getAttachedShaders; 189 PFNGLGETATTRIBLOCATIONPROC getAttribLocation; 190 PFNGLGETPROGRAMINFOLOGPROC getProgramInfoLog; 191 PFNGLGETPROGRAMIVPROC getProgramiv; 192 PFNGLGETSHADERINFOLOGPROC getShaderInfoLog; 193 PFNGLGETSHADERSOURCEPROC getShaderSource; 194 PFNGLGETSHADERIVPROC getShaderiv; 195 PFNGLGETUNIFORMLOCATIONPROC getUniformLocation; 196 PFNGLGETUNIFORMFVPROC getUniformfv; 197 PFNGLGETUNIFORMIVPROC getUniformiv; 198 PFNGLGETVERTEXATTRIBPOINTERVPROC getVertexAttribPointerv; 199 PFNGLGETVERTEXATTRIBDVPROC getVertexAttribdv; 200 PFNGLGETVERTEXATTRIBFVPROC getVertexAttribfv; 201 PFNGLGETVERTEXATTRIBIVPROC getVertexAttribiv; 202 PFNGLISPROGRAMPROC isProgram; 203 PFNGLISSHADERPROC isShader; 204 PFNGLLINKPROGRAMPROC linkProgram; 205 PFNGLSHADERSOURCEPROC shaderSource; 206 PFNGLSTENCILFUNCSEPARATEPROC stencilFuncSeparate; 207 PFNGLSTENCILMASKSEPARATEPROC stencilMaskSeparate; 208 PFNGLSTENCILOPSEPARATEPROC stencilOpSeparate; 209 PFNGLUNIFORM1FPROC uniform1f; 210 PFNGLUNIFORM1FVPROC uniform1fv; 211 PFNGLUNIFORM1IPROC uniform1i; 212 PFNGLUNIFORM1IVPROC uniform1iv; 213 PFNGLUNIFORM2FPROC uniform2f; 214 PFNGLUNIFORM2FVPROC uniform2fv; 215 PFNGLUNIFORM2IPROC uniform2i; 216 PFNGLUNIFORM2IVPROC uniform2iv; 217 PFNGLUNIFORM3FPROC uniform3f; 218 PFNGLUNIFORM3FVPROC uniform3fv; 219 PFNGLUNIFORM3IPROC uniform3i; 220 PFNGLUNIFORM3IVPROC uniform3iv; 221 PFNGLUNIFORM4FPROC uniform4f; 222 PFNGLUNIFORM4FVPROC uniform4fv; 223 PFNGLUNIFORM4IPROC uniform4i; 224 PFNGLUNIFORM4IVPROC uniform4iv; 225 PFNGLUNIFORMMATRIX2FVPROC uniformMatrix2fv; 226 PFNGLUNIFORMMATRIX3FVPROC uniformMatrix3fv; 227 PFNGLUNIFORMMATRIX4FVPROC uniformMatrix4fv; 228 PFNGLUSEPROGRAMPROC useProgram; 229 PFNGLVALIDATEPROGRAMPROC validateProgram; 230 PFNGLVERTEXATTRIB1DPROC vertexAttrib1d; 231 PFNGLVERTEXATTRIB1DVPROC vertexAttrib1dv; 232 PFNGLVERTEXATTRIB1FPROC vertexAttrib1f; 233 PFNGLVERTEXATTRIB1FVPROC vertexAttrib1fv; 234 PFNGLVERTEXATTRIB1SPROC vertexAttrib1s; 235 PFNGLVERTEXATTRIB1SVPROC vertexAttrib1sv; 236 PFNGLVERTEXATTRIB2DPROC vertexAttrib2d; 237 PFNGLVERTEXATTRIB2DVPROC vertexAttrib2dv; 238 PFNGLVERTEXATTRIB2FPROC vertexAttrib2f; 239 PFNGLVERTEXATTRIB2FVPROC vertexAttrib2fv; 240 PFNGLVERTEXATTRIB2SPROC vertexAttrib2s; 241 PFNGLVERTEXATTRIB2SVPROC vertexAttrib2sv; 242 PFNGLVERTEXATTRIB3DPROC vertexAttrib3d; 243 PFNGLVERTEXATTRIB3DVPROC vertexAttrib3dv; 244 PFNGLVERTEXATTRIB3FPROC vertexAttrib3f; 245 PFNGLVERTEXATTRIB3FVPROC vertexAttrib3fv; 246 PFNGLVERTEXATTRIB3SPROC vertexAttrib3s; 247 PFNGLVERTEXATTRIB3SVPROC vertexAttrib3sv; 248 PFNGLVERTEXATTRIB4NBVPROC vertexAttrib4Nbv; 249 PFNGLVERTEXATTRIB4NIVPROC vertexAttrib4Niv; 250 PFNGLVERTEXATTRIB4NSVPROC vertexAttrib4Nsv; 251 PFNGLVERTEXATTRIB4NUBPROC vertexAttrib4Nub; 252 PFNGLVERTEXATTRIB4NUBVPROC vertexAttrib4Nubv; 253 PFNGLVERTEXATTRIB4NUIVPROC vertexAttrib4Nuiv; 254 PFNGLVERTEXATTRIB4NUSVPROC vertexAttrib4Nusv; 255 PFNGLVERTEXATTRIB4BVPROC vertexAttrib4bv; 256 PFNGLVERTEXATTRIB4DPROC vertexAttrib4d; 257 PFNGLVERTEXATTRIB4DVPROC vertexAttrib4dv; 258 PFNGLVERTEXATTRIB4FPROC vertexAttrib4f; 259 PFNGLVERTEXATTRIB4FVPROC vertexAttrib4fv; 260 PFNGLVERTEXATTRIB4IVPROC vertexAttrib4iv; 261 PFNGLVERTEXATTRIB4SPROC vertexAttrib4s; 262 PFNGLVERTEXATTRIB4SVPROC vertexAttrib4sv; 263 PFNGLVERTEXATTRIB4UBVPROC vertexAttrib4ubv; 264 PFNGLVERTEXATTRIB4UIVPROC vertexAttrib4uiv; 265 PFNGLVERTEXATTRIB4USVPROC vertexAttrib4usv; 266 PFNGLVERTEXATTRIBPOINTERPROC vertexAttribPointer; 267 268 // 2.1 269 PFNGLUNIFORMMATRIX2X3FVPROC uniformMatrix2x3fv; 270 PFNGLUNIFORMMATRIX2X4FVPROC uniformMatrix2x4fv; 271 PFNGLUNIFORMMATRIX3X2FVPROC uniformMatrix3x2fv; 272 PFNGLUNIFORMMATRIX3X4FVPROC uniformMatrix3x4fv; 273 PFNGLUNIFORMMATRIX4X2FVPROC uniformMatrix4x2fv; 274 PFNGLUNIFORMMATRIX4X3FVPROC uniformMatrix4x3fv; 275 276 // 3.0 277 PFNGLBEGINCONDITIONALRENDERPROC beginConditionalRender; 278 PFNGLBEGINTRANSFORMFEEDBACKPROC beginTransformFeedback; 279 PFNGLBINDBUFFERBASEPROC bindBufferBase; 280 PFNGLBINDBUFFERRANGEPROC bindBufferRange; 281 PFNGLBINDFRAGDATALOCATIONPROC bindFragDataLocation; 282 PFNGLBINDFRAMEBUFFERPROC bindFramebuffer; 283 PFNGLBINDRENDERBUFFERPROC bindRenderbuffer; 284 PFNGLBINDVERTEXARRAYPROC bindVertexArray; 285 PFNGLBLITFRAMEBUFFERPROC blitFramebuffer; 286 PFNGLCHECKFRAMEBUFFERSTATUSPROC checkFramebufferStatus; 287 PFNGLCLAMPCOLORPROC clampColor; 288 PFNGLCLEARBUFFERFIPROC clearBufferfi; 289 PFNGLCLEARBUFFERFVPROC clearBufferfv; 290 PFNGLCLEARBUFFERIVPROC clearBufferiv; 291 PFNGLCLEARBUFFERUIVPROC clearBufferuiv; 292 PFNGLCOLORMASKIPROC colorMaski; 293 PFNGLDELETEFRAMEBUFFERSPROC deleteFramebuffers; 294 PFNGLDELETERENDERBUFFERSPROC deleteRenderbuffers; 295 PFNGLDELETEVERTEXARRAYSPROC deleteVertexArrays; 296 PFNGLDISABLEIPROC disablei; 297 PFNGLENABLEIPROC enablei; 298 PFNGLENDCONDITIONALRENDERPROC endConditionalRender; 299 PFNGLENDTRANSFORMFEEDBACKPROC endTransformFeedback; 300 PFNGLFLUSHMAPPEDBUFFERRANGEPROC flushMappedBufferRange; 301 PFNGLFRAMEBUFFERRENDERBUFFERPROC framebufferRenderbuffer; 302 PFNGLFRAMEBUFFERTEXTURE1DPROC framebufferTexture1D; 303 PFNGLFRAMEBUFFERTEXTURE2DPROC framebufferTexture2D; 304 PFNGLFRAMEBUFFERTEXTURE3DPROC framebufferTexture3D; 305 PFNGLFRAMEBUFFERTEXTURELAYERPROC framebufferTextureLayer; 306 PFNGLGENFRAMEBUFFERSPROC genFramebuffers; 307 PFNGLGENRENDERBUFFERSPROC genRenderbuffers; 308 PFNGLGENVERTEXARRAYSPROC genVertexArrays; 309 PFNGLGENERATEMIPMAPPROC generateMipmap; 310 PFNGLGETBOOLEANI_VPROC getBooleani_v; 311 PFNGLGETFRAGDATALOCATIONPROC getFragDataLocation; 312 PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC getFramebufferAttachmentParameteriv; 313 PFNGLGETINTEGERI_VPROC getIntegeri_v; 314 PFNGLGETRENDERBUFFERPARAMETERIVPROC getRenderbufferParameteriv; 315 PFNGLGETSTRINGIPROC getStringi; 316 PFNGLGETTEXPARAMETERIIVPROC getTexParameterIiv; 317 PFNGLGETTEXPARAMETERIUIVPROC getTexParameterIuiv; 318 PFNGLGETTRANSFORMFEEDBACKVARYINGPROC getTransformFeedbackVarying; 319 PFNGLGETUNIFORMUIVPROC getUniformuiv; 320 PFNGLGETVERTEXATTRIBIIVPROC getVertexAttribIiv; 321 PFNGLGETVERTEXATTRIBIUIVPROC getVertexAttribIuiv; 322 PFNGLISENABLEDIPROC isEnabledi; 323 PFNGLISFRAMEBUFFERPROC isFramebuffer; 324 PFNGLISRENDERBUFFERPROC isRenderbuffer; 325 PFNGLISVERTEXARRAYPROC isVertexArray; 326 PFNGLMAPBUFFERRANGEPROC mapBufferRange; 327 PFNGLRENDERBUFFERSTORAGEPROC renderbufferStorage; 328 PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC renderbufferStorageMultisample; 329 PFNGLTEXPARAMETERIIVPROC texParameterIiv; 330 PFNGLTEXPARAMETERIUIVPROC texParameterIuiv; 331 PFNGLTRANSFORMFEEDBACKVARYINGSPROC transformFeedbackVaryings; 332 PFNGLUNIFORM1UIPROC uniform1ui; 333 PFNGLUNIFORM1UIVPROC uniform1uiv; 334 PFNGLUNIFORM2UIPROC uniform2ui; 335 PFNGLUNIFORM2UIVPROC uniform2uiv; 336 PFNGLUNIFORM3UIPROC uniform3ui; 337 PFNGLUNIFORM3UIVPROC uniform3uiv; 338 PFNGLUNIFORM4UIPROC uniform4ui; 339 PFNGLUNIFORM4UIVPROC uniform4uiv; 340 PFNGLVERTEXATTRIBI1IPROC vertexAttribI1i; 341 PFNGLVERTEXATTRIBI1IVPROC vertexAttribI1iv; 342 PFNGLVERTEXATTRIBI1UIPROC vertexAttribI1ui; 343 PFNGLVERTEXATTRIBI1UIVPROC vertexAttribI1uiv; 344 PFNGLVERTEXATTRIBI2IPROC vertexAttribI2i; 345 PFNGLVERTEXATTRIBI2IVPROC vertexAttribI2iv; 346 PFNGLVERTEXATTRIBI2UIPROC vertexAttribI2ui; 347 PFNGLVERTEXATTRIBI2UIVPROC vertexAttribI2uiv; 348 PFNGLVERTEXATTRIBI3IPROC vertexAttribI3i; 349 PFNGLVERTEXATTRIBI3IVPROC vertexAttribI3iv; 350 PFNGLVERTEXATTRIBI3UIPROC vertexAttribI3ui; 351 PFNGLVERTEXATTRIBI3UIVPROC vertexAttribI3uiv; 352 PFNGLVERTEXATTRIBI4BVPROC vertexAttribI4bv; 353 PFNGLVERTEXATTRIBI4IPROC vertexAttribI4i; 354 PFNGLVERTEXATTRIBI4IVPROC vertexAttribI4iv; 355 PFNGLVERTEXATTRIBI4SVPROC vertexAttribI4sv; 356 PFNGLVERTEXATTRIBI4UBVPROC vertexAttribI4ubv; 357 PFNGLVERTEXATTRIBI4UIPROC vertexAttribI4ui; 358 PFNGLVERTEXATTRIBI4UIVPROC vertexAttribI4uiv; 359 PFNGLVERTEXATTRIBI4USVPROC vertexAttribI4usv; 360 PFNGLVERTEXATTRIBIPOINTERPROC vertexAttribIPointer; 361 362 // 3.1 363 PFNGLCOPYBUFFERSUBDATAPROC copyBufferSubData; 364 PFNGLDRAWARRAYSINSTANCEDPROC drawArraysInstanced; 365 PFNGLDRAWELEMENTSINSTANCEDPROC drawElementsInstanced; 366 PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC getActiveUniformBlockName; 367 PFNGLGETACTIVEUNIFORMBLOCKIVPROC getActiveUniformBlockiv; 368 PFNGLGETACTIVEUNIFORMNAMEPROC getActiveUniformName; 369 PFNGLGETACTIVEUNIFORMSIVPROC getActiveUniformsiv; 370 PFNGLGETUNIFORMBLOCKINDEXPROC getUniformBlockIndex; 371 PFNGLGETUNIFORMINDICESPROC getUniformIndices; 372 PFNGLPRIMITIVERESTARTINDEXPROC primitiveRestartIndex; 373 PFNGLTEXBUFFERPROC texBuffer; 374 PFNGLUNIFORMBLOCKBINDINGPROC uniformBlockBinding; 375 376 // 3.2 377 PFNGLCLIENTWAITSYNCPROC clientWaitSync; 378 PFNGLDELETESYNCPROC deleteSync; 379 PFNGLDRAWELEMENTSBASEVERTEXPROC drawElementsBaseVertex; 380 PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC drawElementsInstancedBaseVertex; 381 PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC drawRangeElementsBaseVertex; 382 PFNGLFENCESYNCPROC fenceSync; 383 PFNGLFRAMEBUFFERTEXTUREPROC framebufferTexture; 384 PFNGLGETBUFFERPARAMETERI64VPROC getBufferParameteri64v; 385 PFNGLGETINTEGER64I_VPROC getInteger64i_v; 386 PFNGLGETINTEGER64VPROC getInteger64v; 387 PFNGLGETMULTISAMPLEFVPROC getMultisamplefv; 388 PFNGLGETSYNCIVPROC getSynciv; 389 PFNGLISSYNCPROC isSync; 390 PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC multiDrawElementsBaseVertex; 391 PFNGLPROVOKINGVERTEXPROC provokingVertex; 392 PFNGLSAMPLEMASKIPROC sampleMaski; 393 PFNGLTEXIMAGE2DMULTISAMPLEPROC texImage2DMultisample; 394 PFNGLTEXIMAGE3DMULTISAMPLEPROC texImage3DMultisample; 395 PFNGLWAITSYNCPROC waitSync; 396 397 // NV_path_rendering (originally written against 3.2 compatibility profile) 398 PFNGLMATRIXLOADFEXTPROC matrixLoadEXT; 399 PFNGLGENPATHSNVPROC genPathsNV; 400 PFNGLDELETEPATHSNVPROC delPathsNV; 401 PFNGLPATHCOMMANDSNVPROC pathCommandsNV; 402 PFNGLISPATHNVPROC isPathNV; 403 PFNGLPATHPARAMETERFNVPROC setPathParameterfNV; 404 PFNGLPATHPARAMETERINVPROC setPathParameteriNV; 405 PFNGLGETPATHPARAMETERFVNVPROC getPathParameterfNV; 406 PFNGLGETPATHPARAMETERIVNVPROC getPathParameteriNV; 407 PFNGLPATHSTENCILFUNCNVPROC pathStencilFuncNV; 408 PFNGLSTENCILFILLPATHNVPROC stencilFillPathNV; 409 PFNGLSTENCILSTROKEPATHNVPROC stencilStrokePathNV; 410 PFNGLCOVERFILLPATHNVPROC coverFillPathNV; 411 PFNGLCOVERSTROKEPATHNVPROC coverStrokePathNV; 412 PFNGLSTENCILTHENCOVERFILLPATHNVPROC stencilThenCoverFillPathNV; 413 PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC stencilThenCoverStrokePathNV; 414 PFNGLCOVERFILLPATHINSTANCEDNVPROC coverFillPathInstancedNV; 415 PFNGLCOVERSTROKEPATHINSTANCEDNVPROC coverStrokePathInstancedNV; 416 PFNGLSTENCILFILLPATHINSTANCEDNVPROC stencilFillPathInstancedNV; 417 PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC stencilStrokePathInstancedNV; 418 PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC stencilThenCoverFillPathInstancedNV; 419 PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC stencilThenCoverStrokePathInstancedNV; 420 PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC programPathFragmentInputGenNV; 421 422 // 3.3 423 PFNGLBINDFRAGDATALOCATIONINDEXEDPROC bindFragDataLocationIndexed; 424 PFNGLBINDSAMPLERPROC bindSampler; 425 PFNGLDELETESAMPLERSPROC deleteSamplers; 426 PFNGLGENSAMPLERSPROC genSamplers; 427 PFNGLGETFRAGDATAINDEXPROC getFragDataIndex; 428 PFNGLGETQUERYOBJECTI64VPROC getQueryObjecti64v; 429 PFNGLGETQUERYOBJECTUI64VPROC getQueryObjectui64v; 430 PFNGLGETSAMPLERPARAMETERIIVPROC getSamplerParameterIiv; 431 PFNGLGETSAMPLERPARAMETERIUIVPROC getSamplerParameterIuiv; 432 PFNGLGETSAMPLERPARAMETERFVPROC getSamplerParameterfv; 433 PFNGLGETSAMPLERPARAMETERIVPROC getSamplerParameteriv; 434 PFNGLISSAMPLERPROC isSampler; 435 PFNGLQUERYCOUNTERPROC queryCounter; 436 PFNGLSAMPLERPARAMETERIIVPROC samplerParameterIiv; 437 PFNGLSAMPLERPARAMETERIUIVPROC samplerParameterIuiv; 438 PFNGLSAMPLERPARAMETERFPROC samplerParameterf; 439 PFNGLSAMPLERPARAMETERFVPROC samplerParameterfv; 440 PFNGLSAMPLERPARAMETERIPROC samplerParameteri; 441 PFNGLSAMPLERPARAMETERIVPROC samplerParameteriv; 442 PFNGLVERTEXATTRIBDIVISORPROC vertexAttribDivisor; 443 PFNGLVERTEXATTRIBP1UIPROC vertexAttribP1ui; 444 PFNGLVERTEXATTRIBP1UIVPROC vertexAttribP1uiv; 445 PFNGLVERTEXATTRIBP2UIPROC vertexAttribP2ui; 446 PFNGLVERTEXATTRIBP2UIVPROC vertexAttribP2uiv; 447 PFNGLVERTEXATTRIBP3UIPROC vertexAttribP3ui; 448 PFNGLVERTEXATTRIBP3UIVPROC vertexAttribP3uiv; 449 PFNGLVERTEXATTRIBP4UIPROC vertexAttribP4ui; 450 PFNGLVERTEXATTRIBP4UIVPROC vertexAttribP4uiv; 451 452 // 4.0 453 PFNGLBEGINQUERYINDEXEDPROC beginQueryIndexed; 454 PFNGLBINDTRANSFORMFEEDBACKPROC bindTransformFeedback; 455 PFNGLBLENDEQUATIONSEPARATEIPROC blendEquationSeparatei; 456 PFNGLBLENDEQUATIONIPROC blendEquationi; 457 PFNGLBLENDFUNCSEPARATEIPROC blendFuncSeparatei; 458 PFNGLBLENDFUNCIPROC blendFunci; 459 PFNGLDELETETRANSFORMFEEDBACKSPROC deleteTransformFeedbacks; 460 PFNGLDRAWARRAYSINDIRECTPROC drawArraysIndirect; 461 PFNGLDRAWELEMENTSINDIRECTPROC drawElementsIndirect; 462 PFNGLDRAWTRANSFORMFEEDBACKPROC drawTransformFeedback; 463 PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC drawTransformFeedbackStream; 464 PFNGLENDQUERYINDEXEDPROC endQueryIndexed; 465 PFNGLGENTRANSFORMFEEDBACKSPROC genTransformFeedbacks; 466 PFNGLGETACTIVESUBROUTINENAMEPROC getActiveSubroutineName; 467 PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC getActiveSubroutineUniformName; 468 PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC getActiveSubroutineUniformiv; 469 PFNGLGETPROGRAMSTAGEIVPROC getProgramStageiv; 470 PFNGLGETQUERYINDEXEDIVPROC getQueryIndexediv; 471 PFNGLGETSUBROUTINEINDEXPROC getSubroutineIndex; 472 PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC getSubroutineUniformLocation; 473 PFNGLGETUNIFORMSUBROUTINEUIVPROC getUniformSubroutineuiv; 474 PFNGLGETUNIFORMDVPROC getUniformdv; 475 PFNGLISTRANSFORMFEEDBACKPROC isTransformFeedback; 476 PFNGLMINSAMPLESHADINGPROC minSampleShading; 477 PFNGLPATCHPARAMETERFVPROC patchParameterfv; 478 PFNGLPATCHPARAMETERIPROC patchParameteri; 479 PFNGLPAUSETRANSFORMFEEDBACKPROC pauseTransformFeedback; 480 PFNGLRESUMETRANSFORMFEEDBACKPROC resumeTransformFeedback; 481 PFNGLUNIFORM1DPROC uniform1d; 482 PFNGLUNIFORM1DVPROC uniform1dv; 483 PFNGLUNIFORM2DPROC uniform2d; 484 PFNGLUNIFORM2DVPROC uniform2dv; 485 PFNGLUNIFORM3DPROC uniform3d; 486 PFNGLUNIFORM3DVPROC uniform3dv; 487 PFNGLUNIFORM4DPROC uniform4d; 488 PFNGLUNIFORM4DVPROC uniform4dv; 489 PFNGLUNIFORMMATRIX2DVPROC uniformMatrix2dv; 490 PFNGLUNIFORMMATRIX2X3DVPROC uniformMatrix2x3dv; 491 PFNGLUNIFORMMATRIX2X4DVPROC uniformMatrix2x4dv; 492 PFNGLUNIFORMMATRIX3DVPROC uniformMatrix3dv; 493 PFNGLUNIFORMMATRIX3X2DVPROC uniformMatrix3x2dv; 494 PFNGLUNIFORMMATRIX3X4DVPROC uniformMatrix3x4dv; 495 PFNGLUNIFORMMATRIX4DVPROC uniformMatrix4dv; 496 PFNGLUNIFORMMATRIX4X2DVPROC uniformMatrix4x2dv; 497 PFNGLUNIFORMMATRIX4X3DVPROC uniformMatrix4x3dv; 498 PFNGLUNIFORMSUBROUTINESUIVPROC uniformSubroutinesuiv; 499 500 // 4.1 501 PFNGLACTIVESHADERPROGRAMPROC activeShaderProgram; 502 PFNGLBINDPROGRAMPIPELINEPROC bindProgramPipeline; 503 PFNGLCLEARDEPTHFPROC clearDepthf; 504 PFNGLCREATESHADERPROGRAMVPROC createShaderProgramv; 505 PFNGLDELETEPROGRAMPIPELINESPROC deleteProgramPipelines; 506 PFNGLDEPTHRANGEARRAYVPROC depthRangeArrayv; 507 PFNGLDEPTHRANGEINDEXEDPROC depthRangeIndexed; 508 PFNGLDEPTHRANGEFPROC depthRangef; 509 PFNGLGENPROGRAMPIPELINESPROC genProgramPipelines; 510 PFNGLGETDOUBLEI_VPROC getDoublei_v; 511 PFNGLGETFLOATI_VPROC getFloati_v; 512 PFNGLGETPROGRAMBINARYPROC getProgramBinary; 513 PFNGLGETPROGRAMPIPELINEINFOLOGPROC getProgramPipelineInfoLog; 514 PFNGLGETPROGRAMPIPELINEIVPROC getProgramPipelineiv; 515 PFNGLGETSHADERPRECISIONFORMATPROC getShaderPrecisionFormat; 516 PFNGLGETVERTEXATTRIBLDVPROC getVertexAttribLdv; 517 PFNGLISPROGRAMPIPELINEPROC isProgramPipeline; 518 PFNGLPROGRAMBINARYPROC programBinary; 519 PFNGLPROGRAMPARAMETERIPROC programParameteri; 520 PFNGLPROGRAMUNIFORM1DPROC programUniform1d; 521 PFNGLPROGRAMUNIFORM1DVPROC programUniform1dv; 522 PFNGLPROGRAMUNIFORM1FPROC programUniform1f; 523 PFNGLPROGRAMUNIFORM1FVPROC programUniform1fv; 524 PFNGLPROGRAMUNIFORM1IPROC programUniform1i; 525 PFNGLPROGRAMUNIFORM1IVPROC programUniform1iv; 526 PFNGLPROGRAMUNIFORM1UIPROC programUniform1ui; 527 PFNGLPROGRAMUNIFORM1UIVPROC programUniform1uiv; 528 PFNGLPROGRAMUNIFORM2DPROC programUniform2d; 529 PFNGLPROGRAMUNIFORM2DVPROC programUniform2dv; 530 PFNGLPROGRAMUNIFORM2FPROC programUniform2f; 531 PFNGLPROGRAMUNIFORM2FVPROC programUniform2fv; 532 PFNGLPROGRAMUNIFORM2IPROC programUniform2i; 533 PFNGLPROGRAMUNIFORM2IVPROC programUniform2iv; 534 PFNGLPROGRAMUNIFORM2UIPROC programUniform2ui; 535 PFNGLPROGRAMUNIFORM2UIVPROC programUniform2uiv; 536 PFNGLPROGRAMUNIFORM3DPROC programUniform3d; 537 PFNGLPROGRAMUNIFORM3DVPROC programUniform3dv; 538 PFNGLPROGRAMUNIFORM3FPROC programUniform3f; 539 PFNGLPROGRAMUNIFORM3FVPROC programUniform3fv; 540 PFNGLPROGRAMUNIFORM3IPROC programUniform3i; 541 PFNGLPROGRAMUNIFORM3IVPROC programUniform3iv; 542 PFNGLPROGRAMUNIFORM3UIPROC programUniform3ui; 543 PFNGLPROGRAMUNIFORM3UIVPROC programUniform3uiv; 544 PFNGLPROGRAMUNIFORM4DPROC programUniform4d; 545 PFNGLPROGRAMUNIFORM4DVPROC programUniform4dv; 546 PFNGLPROGRAMUNIFORM4FPROC programUniform4f; 547 PFNGLPROGRAMUNIFORM4FVPROC programUniform4fv; 548 PFNGLPROGRAMUNIFORM4IPROC programUniform4i; 549 PFNGLPROGRAMUNIFORM4IVPROC programUniform4iv; 550 PFNGLPROGRAMUNIFORM4UIPROC programUniform4ui; 551 PFNGLPROGRAMUNIFORM4UIVPROC programUniform4uiv; 552 PFNGLPROGRAMUNIFORMMATRIX2DVPROC programUniformMatrix2dv; 553 PFNGLPROGRAMUNIFORMMATRIX2FVPROC programUniformMatrix2fv; 554 PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC programUniformMatrix2x3dv; 555 PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC programUniformMatrix2x3fv; 556 PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC programUniformMatrix2x4dv; 557 PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC programUniformMatrix2x4fv; 558 PFNGLPROGRAMUNIFORMMATRIX3DVPROC programUniformMatrix3dv; 559 PFNGLPROGRAMUNIFORMMATRIX3FVPROC programUniformMatrix3fv; 560 PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC programUniformMatrix3x2dv; 561 PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC programUniformMatrix3x2fv; 562 PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC programUniformMatrix3x4dv; 563 PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC programUniformMatrix3x4fv; 564 PFNGLPROGRAMUNIFORMMATRIX4DVPROC programUniformMatrix4dv; 565 PFNGLPROGRAMUNIFORMMATRIX4FVPROC programUniformMatrix4fv; 566 PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC programUniformMatrix4x2dv; 567 PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC programUniformMatrix4x2fv; 568 PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC programUniformMatrix4x3dv; 569 PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC programUniformMatrix4x3fv; 570 PFNGLRELEASESHADERCOMPILERPROC releaseShaderCompiler; 571 PFNGLSCISSORARRAYVPROC scissorArrayv; 572 PFNGLSCISSORINDEXEDPROC scissorIndexed; 573 PFNGLSCISSORINDEXEDVPROC scissorIndexedv; 574 PFNGLSHADERBINARYPROC shaderBinary; 575 PFNGLUSEPROGRAMSTAGESPROC useProgramStages; 576 PFNGLVALIDATEPROGRAMPIPELINEPROC validateProgramPipeline; 577 PFNGLVERTEXATTRIBL1DPROC vertexAttribL1d; 578 PFNGLVERTEXATTRIBL1DVPROC vertexAttribL1dv; 579 PFNGLVERTEXATTRIBL2DPROC vertexAttribL2d; 580 PFNGLVERTEXATTRIBL2DVPROC vertexAttribL2dv; 581 PFNGLVERTEXATTRIBL3DPROC vertexAttribL3d; 582 PFNGLVERTEXATTRIBL3DVPROC vertexAttribL3dv; 583 PFNGLVERTEXATTRIBL4DPROC vertexAttribL4d; 584 PFNGLVERTEXATTRIBL4DVPROC vertexAttribL4dv; 585 PFNGLVERTEXATTRIBLPOINTERPROC vertexAttribLPointer; 586 PFNGLVIEWPORTARRAYVPROC viewportArrayv; 587 PFNGLVIEWPORTINDEXEDFPROC viewportIndexedf; 588 PFNGLVIEWPORTINDEXEDFVPROC viewportIndexedfv; 589 590 // 4.2 591 PFNGLBINDIMAGETEXTUREPROC bindImageTexture; 592 PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC drawArraysInstancedBaseInstance; 593 PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC drawElementsInstancedBaseInstance; 594 PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC drawElementsInstancedBaseVertexBaseInstance; 595 PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC drawTransformFeedbackInstanced; 596 PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC drawTransformFeedbackStreamInstanced; 597 PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC getActiveAtomicCounterBufferiv; 598 PFNGLGETINTERNALFORMATIVPROC getInternalformativ; 599 PFNGLMEMORYBARRIERPROC memoryBarrier; 600 PFNGLTEXSTORAGE1DPROC texStorage1D; 601 PFNGLTEXSTORAGE2DPROC texStorage2D; 602 PFNGLTEXSTORAGE3DPROC texStorage3D; 603 604 // 4.3 605 PFNGLBINDVERTEXBUFFERPROC bindVertexBuffer; 606 PFNGLCLEARBUFFERDATAPROC clearBufferData; 607 PFNGLCLEARBUFFERSUBDATAPROC clearBufferSubData; 608 PFNGLCOPYIMAGESUBDATAPROC copyImageSubData; 609 PFNGLDEBUGMESSAGECALLBACKPROC debugMessageCallback; 610 PFNGLDEBUGMESSAGECONTROLPROC debugMessageControl; 611 PFNGLDEBUGMESSAGEINSERTPROC debugMessageInsert; 612 PFNGLDISPATCHCOMPUTEPROC dispatchCompute; 613 PFNGLDISPATCHCOMPUTEINDIRECTPROC dispatchComputeIndirect; 614 PFNGLFRAMEBUFFERPARAMETERIPROC framebufferParameteri; 615 PFNGLGETDEBUGMESSAGELOGPROC getDebugMessageLog; 616 PFNGLGETFRAMEBUFFERPARAMETERIVPROC getFramebufferParameteriv; 617 PFNGLGETINTERNALFORMATI64VPROC getInternalformati64v; 618 PFNGLGETPOINTERVPROC getPointerv; 619 PFNGLGETOBJECTLABELPROC getObjectLabel; 620 PFNGLGETOBJECTPTRLABELPROC getObjectPtrLabel; 621 PFNGLGETPROGRAMINTERFACEIVPROC getProgramInterfaceiv; 622 PFNGLGETPROGRAMRESOURCEINDEXPROC getProgramResourceIndex; 623 PFNGLGETPROGRAMRESOURCELOCATIONPROC getProgramResourceLocation; 624 PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC getProgramResourceLocationIndex; 625 PFNGLGETPROGRAMRESOURCENAMEPROC getProgramResourceName; 626 PFNGLGETPROGRAMRESOURCEIVPROC getProgramResourceiv; 627 PFNGLINVALIDATEBUFFERDATAPROC invalidateBufferData; 628 PFNGLINVALIDATEBUFFERSUBDATAPROC invalidateBufferSubData; 629 PFNGLINVALIDATEFRAMEBUFFERPROC invalidateFramebuffer; 630 PFNGLINVALIDATESUBFRAMEBUFFERPROC invalidateSubFramebuffer; 631 PFNGLINVALIDATETEXIMAGEPROC invalidateTexImage; 632 PFNGLINVALIDATETEXSUBIMAGEPROC invalidateTexSubImage; 633 PFNGLMULTIDRAWARRAYSINDIRECTPROC multiDrawArraysIndirect; 634 PFNGLMULTIDRAWELEMENTSINDIRECTPROC multiDrawElementsIndirect; 635 PFNGLOBJECTLABELPROC objectLabel; 636 PFNGLOBJECTPTRLABELPROC objectPtrLabel; 637 PFNGLPOPDEBUGGROUPPROC popDebugGroup; 638 PFNGLPUSHDEBUGGROUPPROC pushDebugGroup; 639 PFNGLSHADERSTORAGEBLOCKBINDINGPROC shaderStorageBlockBinding; 640 PFNGLTEXBUFFERRANGEPROC texBufferRange; 641 PFNGLTEXSTORAGE2DMULTISAMPLEPROC texStorage2DMultisample; 642 PFNGLTEXSTORAGE3DMULTISAMPLEPROC texStorage3DMultisample; 643 PFNGLTEXTUREVIEWPROC textureView; 644 PFNGLVERTEXATTRIBBINDINGPROC vertexAttribBinding; 645 PFNGLVERTEXATTRIBFORMATPROC vertexAttribFormat; 646 PFNGLVERTEXATTRIBIFORMATPROC vertexAttribIFormat; 647 PFNGLVERTEXATTRIBLFORMATPROC vertexAttribLFormat; 648 PFNGLVERTEXBINDINGDIVISORPROC vertexBindingDivisor; 649 PFNGLCOVERAGEMODULATIONNVPROC coverageModulationNV; 650 651 // 4.4 652 PFNGLBINDBUFFERSBASEPROC bindBuffersBase; 653 PFNGLBINDBUFFERSRANGEPROC bindBuffersRange; 654 PFNGLBINDIMAGETEXTURESPROC bindImageTextures; 655 PFNGLBINDSAMPLERSPROC bindSamplers; 656 PFNGLBINDTEXTURESPROC bindTextures; 657 PFNGLBINDVERTEXBUFFERSPROC bindVertexBuffers; 658 PFNGLBUFFERSTORAGEPROC bufferStorage; 659 PFNGLCLEARTEXIMAGEPROC clearTexImage; 660 PFNGLCLEARTEXSUBIMAGEPROC clearTexSubImage; 661 662 // 4.5 663 PFNGLBINDTEXTUREUNITPROC bindTextureUnit; 664 PFNGLBLITNAMEDFRAMEBUFFERPROC blitNamedFramebuffer; 665 PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC checkNamedFramebufferStatus; 666 PFNGLCLEARNAMEDBUFFERDATAPROC clearNamedBufferData; 667 PFNGLCLEARNAMEDBUFFERSUBDATAPROC clearNamedBufferSubData; 668 PFNGLCLEARNAMEDFRAMEBUFFERFIPROC clearNamedFramebufferfi; 669 PFNGLCLEARNAMEDFRAMEBUFFERFVPROC clearNamedFramebufferfv; 670 PFNGLCLEARNAMEDFRAMEBUFFERIVPROC clearNamedFramebufferiv; 671 PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC clearNamedFramebufferuiv; 672 PFNGLCLIPCONTROLPROC clipControl; 673 PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC compressedTextureSubImage1D; 674 PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC compressedTextureSubImage2D; 675 PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC compressedTextureSubImage3D; 676 PFNGLCOPYNAMEDBUFFERSUBDATAPROC copyNamedBufferSubData; 677 PFNGLCOPYTEXTURESUBIMAGE1DPROC copyTextureSubImage1D; 678 PFNGLCOPYTEXTURESUBIMAGE2DPROC copyTextureSubImage2D; 679 PFNGLCOPYTEXTURESUBIMAGE3DPROC copyTextureSubImage3D; 680 PFNGLCREATEBUFFERSPROC createBuffers; 681 PFNGLCREATEFRAMEBUFFERSPROC createFramebuffers; 682 PFNGLCREATEPROGRAMPIPELINESPROC createProgramPipelines; 683 PFNGLCREATEQUERIESPROC createQueries; 684 PFNGLCREATERENDERBUFFERSPROC createRenderbuffers; 685 PFNGLCREATESAMPLERSPROC createSamplers; 686 PFNGLCREATETEXTURESPROC createTextures; 687 PFNGLCREATETRANSFORMFEEDBACKSPROC createTransformFeedbacks; 688 PFNGLCREATEVERTEXARRAYSPROC createVertexArrays; 689 PFNGLDISABLEVERTEXARRAYATTRIBPROC disableVertexArrayAttrib; 690 PFNGLENABLEVERTEXARRAYATTRIBPROC enableVertexArrayAttrib; 691 PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC flushMappedNamedBufferRange; 692 PFNGLGENERATETEXTUREMIPMAPPROC generateTextureMipmap; 693 PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC getCompressedTextureImage; 694 PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC getCompressedTextureSubImage; 695 PFNGLGETGRAPHICSRESETSTATUSPROC getGraphicsResetStatus; 696 PFNGLGETNAMEDBUFFERPARAMETERI64VPROC getNamedBufferParameteri64v; 697 PFNGLGETNAMEDBUFFERPARAMETERIVPROC getNamedBufferParameteriv; 698 PFNGLGETNAMEDBUFFERPOINTERVPROC getNamedBufferPointerv; 699 PFNGLGETNAMEDBUFFERSUBDATAPROC getNamedBufferSubData; 700 PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC getNamedFramebufferAttachmentParameteriv; 701 PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC getNamedFramebufferParameteriv; 702 PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC getNamedRenderbufferParameteriv; 703 PFNGLGETQUERYBUFFEROBJECTI64VPROC getQueryBufferObjecti64v; 704 PFNGLGETQUERYBUFFEROBJECTIVPROC getQueryBufferObjectiv; 705 PFNGLGETQUERYBUFFEROBJECTUI64VPROC getQueryBufferObjectui64v; 706 PFNGLGETQUERYBUFFEROBJECTUIVPROC getQueryBufferObjectuiv; 707 PFNGLGETTEXTUREIMAGEPROC getTextureImage; 708 PFNGLGETTEXTURELEVELPARAMETERFVPROC getTextureLevelParameterfv; 709 PFNGLGETTEXTURELEVELPARAMETERIVPROC getTextureLevelParameteriv; 710 PFNGLGETTEXTUREPARAMETERIIVPROC getTextureParameterIiv; 711 PFNGLGETTEXTUREPARAMETERIUIVPROC getTextureParameterIuiv; 712 PFNGLGETTEXTUREPARAMETERFVPROC getTextureParameterfv; 713 PFNGLGETTEXTUREPARAMETERIVPROC getTextureParameteriv; 714 PFNGLGETTEXTURESUBIMAGEPROC getTextureSubImage; 715 PFNGLGETTRANSFORMFEEDBACKI64_VPROC getTransformFeedbacki64_v; 716 PFNGLGETTRANSFORMFEEDBACKI_VPROC getTransformFeedbacki_v; 717 PFNGLGETTRANSFORMFEEDBACKIVPROC getTransformFeedbackiv; 718 PFNGLGETVERTEXARRAYINDEXED64IVPROC getVertexArrayIndexed64iv; 719 PFNGLGETVERTEXARRAYINDEXEDIVPROC getVertexArrayIndexediv; 720 PFNGLGETVERTEXARRAYIVPROC getVertexArrayiv; 721 PFNGLGETNCOMPRESSEDTEXIMAGEPROC getnCompressedTexImage; 722 PFNGLGETNTEXIMAGEPROC getnTexImage; 723 PFNGLGETNUNIFORMDVPROC getnUniformdv; 724 PFNGLGETNUNIFORMFVPROC getnUniformfv; 725 PFNGLGETNUNIFORMIVPROC getnUniformiv; 726 PFNGLGETNUNIFORMUIVPROC getnUniformuiv; 727 PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC invalidateNamedFramebufferData; 728 PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC invalidateNamedFramebufferSubData; 729 PFNGLMAPNAMEDBUFFERPROC mapNamedBuffer; 730 PFNGLMAPNAMEDBUFFERRANGEPROC mapNamedBufferRange; 731 PFNGLMEMORYBARRIERBYREGIONPROC memoryBarrierByRegion; 732 PFNGLNAMEDBUFFERDATAPROC namedBufferData; 733 PFNGLNAMEDBUFFERSTORAGEPROC namedBufferStorage; 734 PFNGLNAMEDBUFFERSUBDATAPROC namedBufferSubData; 735 PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC namedFramebufferDrawBuffer; 736 PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC namedFramebufferDrawBuffers; 737 PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC namedFramebufferParameteri; 738 PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC namedFramebufferReadBuffer; 739 PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC namedFramebufferRenderbuffer; 740 PFNGLNAMEDFRAMEBUFFERTEXTUREPROC namedFramebufferTexture; 741 PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC namedFramebufferTextureLayer; 742 PFNGLNAMEDRENDERBUFFERSTORAGEPROC namedRenderbufferStorage; 743 PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC namedRenderbufferStorageMultisample; 744 PFNGLREADNPIXELSPROC readnPixels; 745 PFNGLTEXTUREBARRIERPROC textureBarrier; 746 PFNGLTEXTUREBUFFERPROC textureBuffer; 747 PFNGLTEXTUREBUFFERRANGEPROC textureBufferRange; 748 PFNGLTEXTUREPARAMETERIIVPROC textureParameterIiv; 749 PFNGLTEXTUREPARAMETERIUIVPROC textureParameterIuiv; 750 PFNGLTEXTUREPARAMETERFPROC textureParameterf; 751 PFNGLTEXTUREPARAMETERFVPROC textureParameterfv; 752 PFNGLTEXTUREPARAMETERIPROC textureParameteri; 753 PFNGLTEXTUREPARAMETERIVPROC textureParameteriv; 754 PFNGLTEXTURESTORAGE1DPROC textureStorage1D; 755 PFNGLTEXTURESTORAGE2DPROC textureStorage2D; 756 PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC textureStorage2DMultisample; 757 PFNGLTEXTURESTORAGE3DPROC textureStorage3D; 758 PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC textureStorage3DMultisample; 759 PFNGLTEXTURESUBIMAGE1DPROC textureSubImage1D; 760 PFNGLTEXTURESUBIMAGE2DPROC textureSubImage2D; 761 PFNGLTEXTURESUBIMAGE3DPROC textureSubImage3D; 762 PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC transformFeedbackBufferBase; 763 PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC transformFeedbackBufferRange; 764 PFNGLUNMAPNAMEDBUFFERPROC unmapNamedBuffer; 765 PFNGLVERTEXARRAYATTRIBBINDINGPROC vertexArrayAttribBinding; 766 PFNGLVERTEXARRAYATTRIBFORMATPROC vertexArrayAttribFormat; 767 PFNGLVERTEXARRAYATTRIBIFORMATPROC vertexArrayAttribIFormat; 768 PFNGLVERTEXARRAYATTRIBLFORMATPROC vertexArrayAttribLFormat; 769 PFNGLVERTEXARRAYBINDINGDIVISORPROC vertexArrayBindingDivisor; 770 PFNGLVERTEXARRAYELEMENTBUFFERPROC vertexArrayElementBuffer; 771 PFNGLVERTEXARRAYVERTEXBUFFERPROC vertexArrayVertexBuffer; 772 PFNGLVERTEXARRAYVERTEXBUFFERSPROC vertexArrayVertexBuffers; 773 774 // ES 3.2 775 PFNGLBLENDBARRIERPROC blendBarrier; 776 PFNGLPRIMITIVEBOUNDINGBOXPROC primitiveBoundingBox; 777 778 // ES extensions 779 PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC eglImageTargetRenderbufferStorageOES; 780 PFNGLEGLIMAGETARGETTEXTURE2DOESPROC eglImageTargetTexture2DOES; 781 782 private: 783 void initializeProcsDesktopGL(); 784 void initializeProcsGLES(); 785 786 virtual void *loadProcAddress(const std::string &function) = 0; 787 }; 788 789 } 790 791 #endif // LIBANGLE_RENDERER_GL_FUNCTIONSGL_H_ 792