1af69d88dSmrg/* 2af69d88dSmrg * Copyright © 2012 Intel Corporation 3af69d88dSmrg * 4af69d88dSmrg * Permission is hereby granted, free of charge, to any person obtaining a 5af69d88dSmrg * copy of this software and associated documentation files (the "Software"), 6af69d88dSmrg * to deal in the Software without restriction, including without limitation 7af69d88dSmrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8af69d88dSmrg * and/or sell copies of the Software, and to permit persons to whom the 9af69d88dSmrg * Software is furnished to do so, subject to the following conditions: 10af69d88dSmrg * 11af69d88dSmrg * The above copyright notice and this permission notice (including the next 12af69d88dSmrg * paragraph) shall be included in all copies or substantial portions of the 13af69d88dSmrg * Software. 14af69d88dSmrg * 15af69d88dSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16af69d88dSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17af69d88dSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18af69d88dSmrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19af69d88dSmrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20af69d88dSmrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21af69d88dSmrg * DEALINGS IN THE SOFTWARE. 22af69d88dSmrg */ 23af69d88dSmrg 24af69d88dSmrg/** 25af69d88dSmrg * \name dispatch_sanity.cpp 26af69d88dSmrg * 27af69d88dSmrg * Verify that only set of functions that should be available in a particular 28af69d88dSmrg * API are available in that API. 29af69d88dSmrg * 30af69d88dSmrg * The list of expected functions originally came from the functions set by 31af69d88dSmrg * api_exec_es2.c. This file no longer exists in Mesa (but api_exec_es1.c was 32af69d88dSmrg * still generated at the time this test was written). It was the generated 33af69d88dSmrg * file that configured the dispatch table for ES2 contexts. This test 34af69d88dSmrg * verifies that all of the functions set by the old api_exec_es2.c (with the 35af69d88dSmrg * recent addition of VAO functions) are set in the dispatch table and 36af69d88dSmrg * everything else is a NOP. 37af69d88dSmrg * 38af69d88dSmrg * When adding extensions that add new functions, this test will need to be 39af69d88dSmrg * modified to expect dispatch functions for the new extension functions. 40af69d88dSmrg */ 41af69d88dSmrg 42af69d88dSmrg#include <gtest/gtest.h> 43af69d88dSmrg 44af69d88dSmrg#include "GL/gl.h" 45af69d88dSmrg#include "GL/glext.h" 467ec681f3Smrg#include "util/compiler.h" 47af69d88dSmrg#include "main/api_exec.h" 48af69d88dSmrg#include "main/context.h" 49af69d88dSmrg#include "main/remap.h" 50af69d88dSmrg#include "main/vtxfmt.h" 51af69d88dSmrg#include "glapi/glapi.h" 52af69d88dSmrg#include "drivers/common/driverfuncs.h" 53af69d88dSmrg 54af69d88dSmrg#include "swrast/swrast.h" 55af69d88dSmrg#include "vbo/vbo.h" 56af69d88dSmrg#include "tnl/tnl.h" 57af69d88dSmrg#include "swrast_setup/swrast_setup.h" 58af69d88dSmrg 59af69d88dSmrg#ifndef GLAPIENTRYP 60af69d88dSmrg#define GLAPIENTRYP GL_APIENTRYP 61af69d88dSmrg#endif 62af69d88dSmrg 63af69d88dSmrg#include "main/dispatch.h" 64af69d88dSmrg 65af69d88dSmrgstruct function { 66af69d88dSmrg const char *name; 67af69d88dSmrg unsigned int Version; 68af69d88dSmrg int offset; 69af69d88dSmrg}; 70af69d88dSmrg 7101e04c3fSmrgextern const struct function common_desktop_functions_possible[]; 7201e04c3fSmrgextern const struct function gl_compatibility_functions_possible[]; 73af69d88dSmrgextern const struct function gl_core_functions_possible[]; 74af69d88dSmrgextern const struct function gles11_functions_possible[]; 75af69d88dSmrgextern const struct function gles2_functions_possible[]; 76af69d88dSmrgextern const struct function gles3_functions_possible[]; 7701e04c3fSmrgextern const struct function gles31_functions_possible[]; 78af69d88dSmrg 79af69d88dSmrgclass DispatchSanity_test : public ::testing::Test { 80af69d88dSmrgpublic: 81af69d88dSmrg virtual void SetUp(); 827ec681f3Smrg virtual void TearDown(); 83af69d88dSmrg void SetUpCtx(gl_api api, unsigned int version); 847ec681f3Smrg void TearDownCtx(); 85af69d88dSmrg 86af69d88dSmrg struct gl_config visual; 87af69d88dSmrg struct dd_function_table driver_functions; 88af69d88dSmrg struct gl_context share_list; 89af69d88dSmrg struct gl_context ctx; 9001e04c3fSmrg _glapi_proc *nop_table; 91af69d88dSmrg}; 92af69d88dSmrg 93af69d88dSmrgvoid 94af69d88dSmrgDispatchSanity_test::SetUp() 95af69d88dSmrg{ 96af69d88dSmrg memset(&visual, 0, sizeof(visual)); 97af69d88dSmrg memset(&driver_functions, 0, sizeof(driver_functions)); 98af69d88dSmrg memset(&share_list, 0, sizeof(share_list)); 99af69d88dSmrg memset(&ctx, 0, sizeof(ctx)); 100af69d88dSmrg 101af69d88dSmrg _mesa_init_driver_functions(&driver_functions); 10201e04c3fSmrg 10301e04c3fSmrg const unsigned size = _glapi_get_dispatch_table_size(); 10401e04c3fSmrg nop_table = (_glapi_proc *) _mesa_new_nop_table(size); 105af69d88dSmrg} 106af69d88dSmrg 1077ec681f3Smrgvoid 1087ec681f3SmrgDispatchSanity_test::TearDown() 1097ec681f3Smrg{ 1107ec681f3Smrg free(nop_table); 1117ec681f3Smrg} 1127ec681f3Smrg 113af69d88dSmrgvoid 114af69d88dSmrgDispatchSanity_test::SetUpCtx(gl_api api, unsigned int version) 115af69d88dSmrg{ 116af69d88dSmrg _mesa_initialize_context(&ctx, 117af69d88dSmrg api, 118af69d88dSmrg &visual, 119af69d88dSmrg NULL, // share_list 120af69d88dSmrg &driver_functions); 1217ec681f3Smrg _vbo_CreateContext(&ctx, false); 122af69d88dSmrg 12301e04c3fSmrg _mesa_override_extensions(&ctx); 124af69d88dSmrg ctx.Version = version; 125af69d88dSmrg 126af69d88dSmrg _mesa_initialize_dispatch_tables(&ctx); 127af69d88dSmrg _mesa_initialize_vbo_vtxfmt(&ctx); 128af69d88dSmrg} 129af69d88dSmrg 1307ec681f3Smrgvoid 1317ec681f3SmrgDispatchSanity_test::TearDownCtx() 1327ec681f3Smrg{ 1337ec681f3Smrg _vbo_DestroyContext(&ctx); 1347ec681f3Smrg _mesa_free_context_data(&ctx, false); 1357ec681f3Smrg} 1367ec681f3Smrg 137af69d88dSmrgstatic const char * 138af69d88dSmrgoffset_to_proc_name_safe(unsigned offset) 139af69d88dSmrg{ 140af69d88dSmrg const char *name = _glapi_get_proc_name(offset); 141af69d88dSmrg return name ? name : "???"; 142af69d88dSmrg} 143af69d88dSmrg 144af69d88dSmrg/* Scan through the dispatch table and check that all the functions in 14501e04c3fSmrg * _glapi_proc *table exist. 14601e04c3fSmrg */ 147af69d88dSmrgstatic void 14801e04c3fSmrgvalidate_functions(struct gl_context *ctx, const struct function *function_table, 14901e04c3fSmrg const _glapi_proc *nop_table) 150af69d88dSmrg{ 151af69d88dSmrg _glapi_proc *table = (_glapi_proc *) ctx->Exec; 152af69d88dSmrg 153af69d88dSmrg for (unsigned i = 0; function_table[i].name != NULL; i++) { 15401e04c3fSmrg /* The context version is >= the GL version where the function was 15501e04c3fSmrg * introduced. Therefore, the function cannot be set to the nop 15601e04c3fSmrg * function. 157af69d88dSmrg */ 15801e04c3fSmrg const bool cant_be_nop = ctx->Version >= function_table[i].Version; 159af69d88dSmrg 160af69d88dSmrg const int offset = (function_table[i].offset != -1) 161af69d88dSmrg ? function_table[i].offset 162af69d88dSmrg : _glapi_get_proc_offset(function_table[i].name); 163af69d88dSmrg 164af69d88dSmrg ASSERT_NE(-1, offset) 165af69d88dSmrg << "Function: " << function_table[i].name; 166af69d88dSmrg ASSERT_EQ(offset, 167af69d88dSmrg _glapi_get_proc_offset(function_table[i].name)) 168af69d88dSmrg << "Function: " << function_table[i].name; 169af69d88dSmrg if (cant_be_nop) { 17001e04c3fSmrg EXPECT_NE(nop_table[offset], table[offset]) 171af69d88dSmrg << "Function: " << function_table[i].name 172af69d88dSmrg << " at offset " << offset; 173af69d88dSmrg } 174af69d88dSmrg 17501e04c3fSmrg table[offset] = nop_table[offset]; 176af69d88dSmrg } 177af69d88dSmrg} 178af69d88dSmrg 179af69d88dSmrg/* Scan through the table and ensure that there is nothing except 18001e04c3fSmrg * nop functions (as set by validate_functions(). 18101e04c3fSmrg */ 182af69d88dSmrgstatic void 18301e04c3fSmrgvalidate_nops(struct gl_context *ctx, const _glapi_proc *nop_table) 184af69d88dSmrg{ 185af69d88dSmrg _glapi_proc *table = (_glapi_proc *) ctx->Exec; 186af69d88dSmrg 187af69d88dSmrg const unsigned size = _glapi_get_dispatch_table_size(); 188af69d88dSmrg for (unsigned i = 0; i < size; i++) { 18901e04c3fSmrg EXPECT_EQ(nop_table[i], table[i]) 190af69d88dSmrg << "i = " << i << " (" << offset_to_proc_name_safe(i) << ")"; 191af69d88dSmrg } 192af69d88dSmrg} 193af69d88dSmrg 194af69d88dSmrgTEST_F(DispatchSanity_test, GL31_CORE) 195af69d88dSmrg{ 196af69d88dSmrg SetUpCtx(API_OPENGL_CORE, 31); 19701e04c3fSmrg validate_functions(&ctx, common_desktop_functions_possible, nop_table); 19801e04c3fSmrg validate_functions(&ctx, gl_core_functions_possible, nop_table); 19901e04c3fSmrg validate_nops(&ctx, nop_table); 2007ec681f3Smrg TearDownCtx(); 20101e04c3fSmrg} 20201e04c3fSmrg 20301e04c3fSmrgTEST_F(DispatchSanity_test, GL30) 20401e04c3fSmrg{ 20501e04c3fSmrg SetUpCtx(API_OPENGL_COMPAT, 30); 20601e04c3fSmrg validate_functions(&ctx, common_desktop_functions_possible, nop_table); 20701e04c3fSmrg validate_functions(&ctx, gl_compatibility_functions_possible, nop_table); 20801e04c3fSmrg validate_nops(&ctx, nop_table); 2097ec681f3Smrg TearDownCtx(); 210af69d88dSmrg} 211af69d88dSmrg 212af69d88dSmrgTEST_F(DispatchSanity_test, GLES11) 213af69d88dSmrg{ 214af69d88dSmrg SetUpCtx(API_OPENGLES, 11); 21501e04c3fSmrg validate_functions(&ctx, gles11_functions_possible, nop_table); 21601e04c3fSmrg validate_nops(&ctx, nop_table); 2177ec681f3Smrg TearDownCtx(); 218af69d88dSmrg} 219af69d88dSmrg 220af69d88dSmrgTEST_F(DispatchSanity_test, GLES2) 221af69d88dSmrg{ 222af69d88dSmrg SetUpCtx(API_OPENGLES2, 20); 22301e04c3fSmrg validate_functions(&ctx, gles2_functions_possible, nop_table); 22401e04c3fSmrg validate_nops(&ctx, nop_table); 2257ec681f3Smrg TearDownCtx(); 226af69d88dSmrg} 227af69d88dSmrg 228af69d88dSmrgTEST_F(DispatchSanity_test, GLES3) 229af69d88dSmrg{ 230af69d88dSmrg SetUpCtx(API_OPENGLES2, 30); 23101e04c3fSmrg validate_functions(&ctx, gles2_functions_possible, nop_table); 23201e04c3fSmrg validate_functions(&ctx, gles3_functions_possible, nop_table); 23301e04c3fSmrg validate_nops(&ctx, nop_table); 2347ec681f3Smrg TearDownCtx(); 235af69d88dSmrg} 236af69d88dSmrg 23701e04c3fSmrgTEST_F(DispatchSanity_test, GLES31) 23801e04c3fSmrg{ 23901e04c3fSmrg SetUpCtx(API_OPENGLES2, 31); 24001e04c3fSmrg validate_functions(&ctx, gles2_functions_possible, nop_table); 24101e04c3fSmrg validate_functions(&ctx, gles3_functions_possible, nop_table); 24201e04c3fSmrg validate_functions(&ctx, gles31_functions_possible, nop_table); 24301e04c3fSmrg validate_nops(&ctx, nop_table); 2447ec681f3Smrg TearDownCtx(); 24501e04c3fSmrg} 24601e04c3fSmrg 24701e04c3fSmrgconst struct function common_desktop_functions_possible[] = { 24801e04c3fSmrg { "glBindRenderbufferEXT", 10, -1 }, 24901e04c3fSmrg { "glBindFramebufferEXT", 10, -1 }, 250af69d88dSmrg { "glCullFace", 10, -1 }, 251af69d88dSmrg { "glFrontFace", 10, -1 }, 252af69d88dSmrg { "glHint", 10, -1 }, 253af69d88dSmrg { "glLineWidth", 10, -1 }, 254af69d88dSmrg { "glPointSize", 10, -1 }, 255af69d88dSmrg { "glPolygonMode", 10, -1 }, 256af69d88dSmrg { "glScissor", 10, -1 }, 257af69d88dSmrg { "glTexParameterf", 10, -1 }, 258af69d88dSmrg { "glTexParameterfv", 10, -1 }, 259af69d88dSmrg { "glTexParameteri", 10, -1 }, 260af69d88dSmrg { "glTexParameteriv", 10, -1 }, 26101e04c3fSmrg { "glTexImage1D", 10, _gloffset_TexImage1D }, 26201e04c3fSmrg { "glTexImage2D", 10, _gloffset_TexImage2D }, 263af69d88dSmrg { "glDrawBuffer", 10, -1 }, 264af69d88dSmrg { "glClear", 10, -1 }, 265af69d88dSmrg { "glClearColor", 10, -1 }, 266af69d88dSmrg { "glClearStencil", 10, -1 }, 267af69d88dSmrg { "glClearDepth", 10, -1 }, 268af69d88dSmrg { "glStencilMask", 10, -1 }, 269af69d88dSmrg { "glColorMask", 10, -1 }, 270af69d88dSmrg { "glDepthMask", 10, -1 }, 271af69d88dSmrg { "glDisable", 10, -1 }, 272af69d88dSmrg { "glEnable", 10, -1 }, 273af69d88dSmrg { "glFinish", 10, -1 }, 274af69d88dSmrg { "glFlush", 10, -1 }, 275af69d88dSmrg { "glBlendFunc", 10, -1 }, 276af69d88dSmrg { "glLogicOp", 10, -1 }, 277af69d88dSmrg { "glStencilFunc", 10, -1 }, 278af69d88dSmrg { "glStencilOp", 10, -1 }, 279af69d88dSmrg { "glDepthFunc", 10, -1 }, 280af69d88dSmrg { "glPixelStoref", 10, -1 }, 281af69d88dSmrg { "glPixelStorei", 10, -1 }, 282af69d88dSmrg { "glReadBuffer", 10, -1 }, 283af69d88dSmrg { "glReadPixels", 10, -1 }, 284af69d88dSmrg { "glGetBooleanv", 10, -1 }, 285af69d88dSmrg { "glGetDoublev", 10, -1 }, 286af69d88dSmrg { "glGetError", 10, -1 }, 287af69d88dSmrg { "glGetFloatv", 10, -1 }, 288af69d88dSmrg { "glGetIntegerv", 10, -1 }, 289af69d88dSmrg { "glGetString", 10, -1 }, 290af69d88dSmrg { "glGetTexImage", 10, -1 }, 291af69d88dSmrg { "glGetTexParameterfv", 10, -1 }, 292af69d88dSmrg { "glGetTexParameteriv", 10, -1 }, 293af69d88dSmrg { "glGetTexLevelParameterfv", 10, -1 }, 294af69d88dSmrg { "glGetTexLevelParameteriv", 10, -1 }, 295af69d88dSmrg { "glIsEnabled", 10, -1 }, 296af69d88dSmrg { "glDepthRange", 10, -1 }, 297af69d88dSmrg { "glViewport", 10, -1 }, 298af69d88dSmrg 299af69d88dSmrg /* GL 1.1 */ 300af69d88dSmrg { "glDrawArrays", 11, -1 }, 301af69d88dSmrg { "glDrawElements", 11, -1 }, 302af69d88dSmrg { "glGetPointerv", 11, -1 }, 303af69d88dSmrg { "glPolygonOffset", 11, -1 }, 304af69d88dSmrg { "glCopyTexImage1D", 11, -1 }, 305af69d88dSmrg { "glCopyTexImage2D", 11, -1 }, 306af69d88dSmrg { "glCopyTexSubImage1D", 11, -1 }, 307af69d88dSmrg { "glCopyTexSubImage2D", 11, -1 }, 308af69d88dSmrg { "glTexSubImage1D", 11, -1 }, 309af69d88dSmrg { "glTexSubImage2D", 11, -1 }, 310af69d88dSmrg { "glBindTexture", 11, -1 }, 311af69d88dSmrg { "glDeleteTextures", 11, -1 }, 312af69d88dSmrg { "glGenTextures", 11, -1 }, 313af69d88dSmrg { "glIsTexture", 11, -1 }, 314af69d88dSmrg 315af69d88dSmrg /* GL 1.2 */ 316af69d88dSmrg { "glBlendColor", 12, -1 }, 317af69d88dSmrg { "glBlendEquation", 12, -1 }, 318af69d88dSmrg { "glDrawRangeElements", 12, -1 }, 319af69d88dSmrg { "glTexImage3D", 12, -1 }, 320af69d88dSmrg { "glTexSubImage3D", 12, -1 }, 321af69d88dSmrg { "glCopyTexSubImage3D", 12, -1 }, 322af69d88dSmrg 323af69d88dSmrg /* GL 1.3 */ 324af69d88dSmrg { "glActiveTexture", 13, -1 }, 325af69d88dSmrg { "glSampleCoverage", 13, -1 }, 326af69d88dSmrg { "glCompressedTexImage3D", 13, -1 }, 327af69d88dSmrg { "glCompressedTexImage2D", 13, -1 }, 328af69d88dSmrg { "glCompressedTexImage1D", 13, -1 }, 329af69d88dSmrg { "glCompressedTexSubImage3D", 13, -1 }, 330af69d88dSmrg { "glCompressedTexSubImage2D", 13, -1 }, 331af69d88dSmrg { "glCompressedTexSubImage1D", 13, -1 }, 332af69d88dSmrg { "glGetCompressedTexImage", 13, -1 }, 333af69d88dSmrg 334af69d88dSmrg /* GL 1.4 */ 335af69d88dSmrg { "glBlendFuncSeparate", 14, -1 }, 336af69d88dSmrg { "glMultiDrawArrays", 14, -1 }, 337af69d88dSmrg { "glMultiDrawElements", 14, -1 }, 338af69d88dSmrg { "glPointParameterf", 14, -1 }, 339af69d88dSmrg { "glPointParameterfv", 14, -1 }, 340af69d88dSmrg { "glPointParameteri", 14, -1 }, 341af69d88dSmrg { "glPointParameteriv", 14, -1 }, 342af69d88dSmrg 343af69d88dSmrg /* GL 1.5 */ 344af69d88dSmrg { "glGenQueries", 15, -1 }, 345af69d88dSmrg { "glDeleteQueries", 15, -1 }, 346af69d88dSmrg { "glIsQuery", 15, -1 }, 347af69d88dSmrg { "glBeginQuery", 15, -1 }, 348af69d88dSmrg { "glEndQuery", 15, -1 }, 349af69d88dSmrg { "glGetQueryiv", 15, -1 }, 350af69d88dSmrg { "glGetQueryObjectiv", 15, -1 }, 351af69d88dSmrg { "glGetQueryObjectuiv", 15, -1 }, 352af69d88dSmrg { "glBindBuffer", 15, -1 }, 353af69d88dSmrg { "glDeleteBuffers", 15, -1 }, 354af69d88dSmrg { "glGenBuffers", 15, -1 }, 355af69d88dSmrg { "glIsBuffer", 15, -1 }, 356af69d88dSmrg { "glBufferData", 15, -1 }, 357af69d88dSmrg { "glBufferSubData", 15, -1 }, 358af69d88dSmrg { "glGetBufferSubData", 15, -1 }, 359af69d88dSmrg { "glMapBuffer", 15, -1 }, 360af69d88dSmrg { "glUnmapBuffer", 15, -1 }, 361af69d88dSmrg { "glGetBufferParameteriv", 15, -1 }, 362af69d88dSmrg { "glGetBufferPointerv", 15, -1 }, 363af69d88dSmrg 364af69d88dSmrg /* GL 2.0 */ 365af69d88dSmrg { "glBlendEquationSeparate", 20, -1 }, 366af69d88dSmrg { "glDrawBuffers", 20, -1 }, 367af69d88dSmrg { "glStencilOpSeparate", 20, -1 }, 368af69d88dSmrg { "glStencilFuncSeparate", 20, -1 }, 369af69d88dSmrg { "glStencilMaskSeparate", 20, -1 }, 370af69d88dSmrg { "glAttachShader", 20, -1 }, 371af69d88dSmrg { "glBindAttribLocation", 20, -1 }, 372af69d88dSmrg { "glCompileShader", 20, -1 }, 373af69d88dSmrg { "glCreateProgram", 20, -1 }, 374af69d88dSmrg { "glCreateShader", 20, -1 }, 375af69d88dSmrg { "glDeleteProgram", 20, -1 }, 376af69d88dSmrg { "glDeleteShader", 20, -1 }, 377af69d88dSmrg { "glDetachShader", 20, -1 }, 378af69d88dSmrg { "glDisableVertexAttribArray", 20, -1 }, 379af69d88dSmrg { "glEnableVertexAttribArray", 20, -1 }, 380af69d88dSmrg { "glGetActiveAttrib", 20, -1 }, 381af69d88dSmrg { "glGetActiveUniform", 20, -1 }, 382af69d88dSmrg { "glGetAttachedShaders", 20, -1 }, 383af69d88dSmrg { "glGetAttribLocation", 20, -1 }, 384af69d88dSmrg { "glGetProgramiv", 20, -1 }, 385af69d88dSmrg { "glGetProgramInfoLog", 20, -1 }, 386af69d88dSmrg { "glGetShaderiv", 20, -1 }, 387af69d88dSmrg { "glGetShaderInfoLog", 20, -1 }, 388af69d88dSmrg { "glGetShaderSource", 20, -1 }, 389af69d88dSmrg { "glGetUniformLocation", 20, -1 }, 390af69d88dSmrg { "glGetUniformfv", 20, -1 }, 391af69d88dSmrg { "glGetUniformiv", 20, -1 }, 392af69d88dSmrg { "glGetVertexAttribdv", 20, -1 }, 393af69d88dSmrg { "glGetVertexAttribfv", 20, -1 }, 394af69d88dSmrg { "glGetVertexAttribiv", 20, -1 }, 395af69d88dSmrg { "glGetVertexAttribPointerv", 20, -1 }, 396af69d88dSmrg { "glIsProgram", 20, -1 }, 397af69d88dSmrg { "glIsShader", 20, -1 }, 398af69d88dSmrg { "glLinkProgram", 20, -1 }, 399af69d88dSmrg { "glShaderSource", 20, -1 }, 400af69d88dSmrg { "glUseProgram", 20, -1 }, 401af69d88dSmrg { "glUniform1f", 20, -1 }, 402af69d88dSmrg { "glUniform2f", 20, -1 }, 403af69d88dSmrg { "glUniform3f", 20, -1 }, 404af69d88dSmrg { "glUniform4f", 20, -1 }, 405af69d88dSmrg { "glUniform1i", 20, -1 }, 406af69d88dSmrg { "glUniform2i", 20, -1 }, 407af69d88dSmrg { "glUniform3i", 20, -1 }, 408af69d88dSmrg { "glUniform4i", 20, -1 }, 409af69d88dSmrg { "glUniform1fv", 20, -1 }, 410af69d88dSmrg { "glUniform2fv", 20, -1 }, 411af69d88dSmrg { "glUniform3fv", 20, -1 }, 412af69d88dSmrg { "glUniform4fv", 20, -1 }, 413af69d88dSmrg { "glUniform1iv", 20, -1 }, 414af69d88dSmrg { "glUniform2iv", 20, -1 }, 415af69d88dSmrg { "glUniform3iv", 20, -1 }, 416af69d88dSmrg { "glUniform4iv", 20, -1 }, 417af69d88dSmrg { "glUniformMatrix2fv", 20, -1 }, 418af69d88dSmrg { "glUniformMatrix3fv", 20, -1 }, 419af69d88dSmrg { "glUniformMatrix4fv", 20, -1 }, 420af69d88dSmrg { "glValidateProgram", 20, -1 }, 421af69d88dSmrg { "glVertexAttrib1d", 20, -1 }, 422af69d88dSmrg { "glVertexAttrib1dv", 20, -1 }, 423af69d88dSmrg { "glVertexAttrib1f", 20, -1 }, 424af69d88dSmrg { "glVertexAttrib1fv", 20, -1 }, 425af69d88dSmrg { "glVertexAttrib1s", 20, -1 }, 426af69d88dSmrg { "glVertexAttrib1sv", 20, -1 }, 427af69d88dSmrg { "glVertexAttrib2d", 20, -1 }, 428af69d88dSmrg { "glVertexAttrib2dv", 20, -1 }, 429af69d88dSmrg { "glVertexAttrib2f", 20, -1 }, 430af69d88dSmrg { "glVertexAttrib2fv", 20, -1 }, 431af69d88dSmrg { "glVertexAttrib2s", 20, -1 }, 432af69d88dSmrg { "glVertexAttrib2sv", 20, -1 }, 433af69d88dSmrg { "glVertexAttrib3d", 20, -1 }, 434af69d88dSmrg { "glVertexAttrib3dv", 20, -1 }, 435af69d88dSmrg { "glVertexAttrib3f", 20, -1 }, 436af69d88dSmrg { "glVertexAttrib3fv", 20, -1 }, 437af69d88dSmrg { "glVertexAttrib3s", 20, -1 }, 438af69d88dSmrg { "glVertexAttrib3sv", 20, -1 }, 439af69d88dSmrg { "glVertexAttrib4Nbv", 20, -1 }, 440af69d88dSmrg { "glVertexAttrib4Niv", 20, -1 }, 441af69d88dSmrg { "glVertexAttrib4Nsv", 20, -1 }, 442af69d88dSmrg { "glVertexAttrib4Nub", 20, -1 }, 443af69d88dSmrg { "glVertexAttrib4Nubv", 20, -1 }, 444af69d88dSmrg { "glVertexAttrib4Nuiv", 20, -1 }, 445af69d88dSmrg { "glVertexAttrib4Nusv", 20, -1 }, 446af69d88dSmrg { "glVertexAttrib4bv", 20, -1 }, 447af69d88dSmrg { "glVertexAttrib4d", 20, -1 }, 448af69d88dSmrg { "glVertexAttrib4dv", 20, -1 }, 449af69d88dSmrg { "glVertexAttrib4f", 20, -1 }, 450af69d88dSmrg { "glVertexAttrib4fv", 20, -1 }, 451af69d88dSmrg { "glVertexAttrib4iv", 20, -1 }, 452af69d88dSmrg { "glVertexAttrib4s", 20, -1 }, 453af69d88dSmrg { "glVertexAttrib4sv", 20, -1 }, 454af69d88dSmrg { "glVertexAttrib4ubv", 20, -1 }, 455af69d88dSmrg { "glVertexAttrib4uiv", 20, -1 }, 456af69d88dSmrg { "glVertexAttrib4usv", 20, -1 }, 457af69d88dSmrg { "glVertexAttribPointer", 20, -1 }, 458af69d88dSmrg 459af69d88dSmrg /* GL 2.1 */ 460af69d88dSmrg { "glUniformMatrix2x3fv", 21, -1 }, 461af69d88dSmrg { "glUniformMatrix3x2fv", 21, -1 }, 462af69d88dSmrg { "glUniformMatrix2x4fv", 21, -1 }, 463af69d88dSmrg { "glUniformMatrix4x2fv", 21, -1 }, 464af69d88dSmrg { "glUniformMatrix3x4fv", 21, -1 }, 465af69d88dSmrg { "glUniformMatrix4x3fv", 21, -1 }, 466af69d88dSmrg 467af69d88dSmrg /* GL 3.0 */ 468af69d88dSmrg { "glColorMaski", 30, -1 }, 469af69d88dSmrg { "glGetBooleani_v", 30, -1 }, 470af69d88dSmrg { "glGetIntegeri_v", 30, -1 }, 471af69d88dSmrg { "glEnablei", 30, -1 }, 472af69d88dSmrg { "glDisablei", 30, -1 }, 473af69d88dSmrg { "glIsEnabledi", 30, -1 }, 474af69d88dSmrg { "glBeginTransformFeedback", 30, -1 }, 475af69d88dSmrg { "glEndTransformFeedback", 30, -1 }, 476af69d88dSmrg { "glBindBufferRange", 30, -1 }, 477af69d88dSmrg { "glBindBufferBase", 30, -1 }, 478af69d88dSmrg { "glTransformFeedbackVaryings", 30, -1 }, 479af69d88dSmrg { "glGetTransformFeedbackVarying", 30, -1 }, 480af69d88dSmrg { "glClampColor", 30, -1 }, 481af69d88dSmrg { "glBeginConditionalRender", 30, -1 }, 482af69d88dSmrg { "glEndConditionalRender", 30, -1 }, 483af69d88dSmrg { "glVertexAttribIPointer", 30, -1 }, 484af69d88dSmrg { "glGetVertexAttribIiv", 30, -1 }, 485af69d88dSmrg { "glGetVertexAttribIuiv", 30, -1 }, 486af69d88dSmrg { "glVertexAttribI1i", 30, -1 }, 487af69d88dSmrg { "glVertexAttribI2i", 30, -1 }, 488af69d88dSmrg { "glVertexAttribI3i", 30, -1 }, 489af69d88dSmrg { "glVertexAttribI4i", 30, -1 }, 490af69d88dSmrg { "glVertexAttribI1ui", 30, -1 }, 491af69d88dSmrg { "glVertexAttribI2ui", 30, -1 }, 492af69d88dSmrg { "glVertexAttribI3ui", 30, -1 }, 493af69d88dSmrg { "glVertexAttribI4ui", 30, -1 }, 494af69d88dSmrg { "glVertexAttribI1iv", 30, -1 }, 495af69d88dSmrg { "glVertexAttribI2iv", 30, -1 }, 496af69d88dSmrg { "glVertexAttribI3iv", 30, -1 }, 497af69d88dSmrg { "glVertexAttribI4iv", 30, -1 }, 498af69d88dSmrg { "glVertexAttribI1uiv", 30, -1 }, 499af69d88dSmrg { "glVertexAttribI2uiv", 30, -1 }, 500af69d88dSmrg { "glVertexAttribI3uiv", 30, -1 }, 501af69d88dSmrg { "glVertexAttribI4uiv", 30, -1 }, 502af69d88dSmrg { "glVertexAttribI4bv", 30, -1 }, 503af69d88dSmrg { "glVertexAttribI4sv", 30, -1 }, 504af69d88dSmrg { "glVertexAttribI4ubv", 30, -1 }, 505af69d88dSmrg { "glVertexAttribI4usv", 30, -1 }, 506af69d88dSmrg { "glGetUniformuiv", 30, -1 }, 507af69d88dSmrg { "glBindFragDataLocation", 30, -1 }, 508af69d88dSmrg { "glGetFragDataLocation", 30, -1 }, 509af69d88dSmrg { "glUniform1ui", 30, -1 }, 510af69d88dSmrg { "glUniform2ui", 30, -1 }, 511af69d88dSmrg { "glUniform3ui", 30, -1 }, 512af69d88dSmrg { "glUniform4ui", 30, -1 }, 513af69d88dSmrg { "glUniform1uiv", 30, -1 }, 514af69d88dSmrg { "glUniform2uiv", 30, -1 }, 515af69d88dSmrg { "glUniform3uiv", 30, -1 }, 516af69d88dSmrg { "glUniform4uiv", 30, -1 }, 517af69d88dSmrg { "glTexParameterIiv", 30, -1 }, 518af69d88dSmrg { "glTexParameterIuiv", 30, -1 }, 519af69d88dSmrg { "glGetTexParameterIiv", 30, -1 }, 520af69d88dSmrg { "glGetTexParameterIuiv", 30, -1 }, 521af69d88dSmrg { "glClearBufferiv", 30, -1 }, 522af69d88dSmrg { "glClearBufferuiv", 30, -1 }, 523af69d88dSmrg { "glClearBufferfv", 30, -1 }, 524af69d88dSmrg { "glClearBufferfi", 30, -1 }, 525af69d88dSmrg { "glGetStringi", 30, -1 }, 526af69d88dSmrg 527af69d88dSmrg /* GL 3.1 */ 528af69d88dSmrg { "glDrawArraysInstanced", 31, -1 }, 529af69d88dSmrg { "glDrawElementsInstanced", 31, -1 }, 530af69d88dSmrg { "glPrimitiveRestartIndex", 31, -1 }, 53101e04c3fSmrg { "glTexBuffer", 31, -1 }, 53201e04c3fSmrg 53301e04c3fSmrg /* GL_ARB_texture_buffer_range */ 53401e04c3fSmrg { "glTexBufferRange", 43, -1 }, 535af69d88dSmrg 536af69d88dSmrg /* GL_ARB_shader_objects */ 537af69d88dSmrg { "glDeleteObjectARB", 31, -1 }, 538af69d88dSmrg { "glGetHandleARB", 31, -1 }, 539af69d88dSmrg { "glDetachObjectARB", 31, -1 }, 540af69d88dSmrg { "glCreateShaderObjectARB", 31, -1 }, 541af69d88dSmrg { "glCreateProgramObjectARB", 31, -1 }, 542af69d88dSmrg { "glAttachObjectARB", 31, -1 }, 543af69d88dSmrg { "glGetObjectParameterfvARB", 31, -1 }, 544af69d88dSmrg { "glGetObjectParameterivARB", 31, -1 }, 545af69d88dSmrg { "glGetInfoLogARB", 31, -1 }, 546af69d88dSmrg { "glGetAttachedObjectsARB", 31, -1 }, 547af69d88dSmrg 548af69d88dSmrg /* GL_ARB_get_program_binary */ 549af69d88dSmrg { "glGetProgramBinary", 30, -1 }, 550af69d88dSmrg { "glProgramBinary", 30, -1 }, 551af69d88dSmrg { "glProgramParameteri", 30, -1 }, 552af69d88dSmrg 553af69d88dSmrg /* GL_EXT_transform_feedback */ 554af69d88dSmrg { "glBindBufferOffsetEXT", 31, -1 }, 555af69d88dSmrg 556af69d88dSmrg /* GL_IBM_multimode_draw_arrays */ 557af69d88dSmrg { "glMultiModeDrawArraysIBM", 31, -1 }, 558af69d88dSmrg { "glMultiModeDrawElementsIBM", 31, -1 }, 559af69d88dSmrg 560af69d88dSmrg /* GL_EXT_depth_bounds_test */ 561af69d88dSmrg { "glDepthBoundsEXT", 31, -1 }, 562af69d88dSmrg 563af69d88dSmrg /* GL_apple_object_purgeable */ 564af69d88dSmrg { "glObjectPurgeableAPPLE", 31, -1 }, 565af69d88dSmrg { "glObjectUnpurgeableAPPLE", 31, -1 }, 566af69d88dSmrg { "glGetObjectParameterivAPPLE", 31, -1 }, 567af69d88dSmrg 568af69d88dSmrg /* GL_ARB_instanced_arrays */ 569af69d88dSmrg { "glVertexAttribDivisorARB", 31, -1 }, 5707ec681f3Smrg { "glVertexArrayVertexAttribDivisorEXT", 31, -1 }, 571af69d88dSmrg 572af69d88dSmrg /* GL_NV_texture_barrier */ 573af69d88dSmrg { "glTextureBarrierNV", 31, -1 }, 574af69d88dSmrg 575af69d88dSmrg /* GL_EXT_texture_integer */ 576af69d88dSmrg { "glClearColorIiEXT", 31, -1 }, 577af69d88dSmrg { "glClearColorIuiEXT", 31, -1 }, 578af69d88dSmrg 579af69d88dSmrg /* GL_OES_EGL_image */ 580af69d88dSmrg { "glEGLImageTargetRenderbufferStorageOES", 31, -1 }, 581af69d88dSmrg { "glEGLImageTargetTexture2DOES", 31, -1 }, 582af69d88dSmrg 5837ec681f3Smrg /* EXT_EGL_image_storage */ 5847ec681f3Smrg { "glEGLImageTargetTexStorageEXT", 31, -1 }, 5857ec681f3Smrg { "glEGLImageTargetTextureStorageEXT", 31, -1 }, 5867ec681f3Smrg 5877ec681f3Smrg /* GL_NV_copy_image */ 5887ec681f3Smrg { "glCopyImageSubDataNV", 31, -1 }, 5897ec681f3Smrg 590af69d88dSmrg /* GL 3.2 */ 591af69d88dSmrg { "glGetInteger64i_v", 32, -1 }, 592af69d88dSmrg { "glGetBufferParameteri64v", 32, -1 }, 593af69d88dSmrg { "glFramebufferTexture", 32, -1 }, 59401e04c3fSmrg { "glProgramParameteri", 32, -1 }, 59501e04c3fSmrg { "glFramebufferTextureLayer", 32, -1 }, 596af69d88dSmrg 597af69d88dSmrg /* GL 3.3 */ 598af69d88dSmrg { "glVertexAttribDivisor", 33, -1 }, 599af69d88dSmrg 600af69d88dSmrg /* GL 4.0 */ 601af69d88dSmrg { "glMinSampleShading", 40, -1 }, 60201e04c3fSmrg { "glPatchParameteri", 40, -1 }, 60301e04c3fSmrg { "glPatchParameterfv", 40, -1 }, 604af69d88dSmrg { "glBlendEquationi", 40, -1 }, 605af69d88dSmrg { "glBlendEquationSeparatei", 40, -1 }, 606af69d88dSmrg { "glBlendFunci", 40, -1 }, 607af69d88dSmrg { "glBlendFuncSeparatei", 40, -1 }, 608af69d88dSmrg 60901e04c3fSmrg { "glGetSubroutineUniformLocation", 40, -1 }, 61001e04c3fSmrg { "glGetSubroutineIndex", 40, -1 }, 61101e04c3fSmrg { "glGetActiveSubroutineUniformiv", 40, -1 }, 61201e04c3fSmrg { "glGetActiveSubroutineUniformName", 40, -1 }, 61301e04c3fSmrg { "glGetActiveSubroutineName", 40, -1 }, 61401e04c3fSmrg { "glUniformSubroutinesuiv", 40, -1 }, 61501e04c3fSmrg { "glGetUniformSubroutineuiv", 40, -1 }, 61601e04c3fSmrg { "glGetProgramStageiv", 40, -1 }, 61701e04c3fSmrg 61801e04c3fSmrg { "glUniform1d", 40, -1 }, 61901e04c3fSmrg { "glUniform2d", 40, -1 }, 62001e04c3fSmrg { "glUniform3d", 40, -1 }, 62101e04c3fSmrg { "glUniform4d", 40, -1 }, 62201e04c3fSmrg { "glUniform1dv", 40, -1 }, 62301e04c3fSmrg { "glUniform2dv", 40, -1 }, 62401e04c3fSmrg { "glUniform3dv", 40, -1 }, 62501e04c3fSmrg { "glUniform4dv", 40, -1 }, 62601e04c3fSmrg { "glUniformMatrix2dv", 40, -1 }, 62701e04c3fSmrg { "glUniformMatrix3dv", 40, -1 }, 62801e04c3fSmrg { "glUniformMatrix4dv", 40, -1 }, 62901e04c3fSmrg { "glUniformMatrix2x3dv", 40, -1 }, 63001e04c3fSmrg { "glUniformMatrix2x4dv", 40, -1 }, 63101e04c3fSmrg { "glUniformMatrix3x2dv", 40, -1 }, 63201e04c3fSmrg { "glUniformMatrix3x4dv", 40, -1 }, 63301e04c3fSmrg { "glUniformMatrix4x2dv", 40, -1 }, 63401e04c3fSmrg { "glUniformMatrix4x3dv", 40, -1 }, 63501e04c3fSmrg { "glGetUniformdv", 43, -1 }, 63601e04c3fSmrg 63701e04c3fSmrg /* GL 4.1 */ 63801e04c3fSmrg { "glVertexAttribL1d", 41, -1 }, 63901e04c3fSmrg { "glVertexAttribL2d", 41, -1 }, 64001e04c3fSmrg { "glVertexAttribL3d", 41, -1 }, 64101e04c3fSmrg { "glVertexAttribL4d", 41, -1 }, 64201e04c3fSmrg { "glVertexAttribL1dv", 41, -1 }, 64301e04c3fSmrg { "glVertexAttribL2dv", 41, -1 }, 64401e04c3fSmrg { "glVertexAttribL3dv", 41, -1 }, 64501e04c3fSmrg { "glVertexAttribL4dv", 41, -1 }, 64601e04c3fSmrg { "glVertexAttribLPointer", 41, -1 }, 64701e04c3fSmrg { "glGetVertexAttribLdv", 41, -1 }, 6487ec681f3Smrg { "glVertexArrayVertexAttribLOffsetEXT", 41, -1 }, 64901e04c3fSmrg 650af69d88dSmrg /* GL 4.3 */ 651af69d88dSmrg { "glIsRenderbuffer", 43, -1 }, 652af69d88dSmrg { "glBindRenderbuffer", 43, -1 }, 653af69d88dSmrg { "glDeleteRenderbuffers", 43, -1 }, 654af69d88dSmrg { "glGenRenderbuffers", 43, -1 }, 655af69d88dSmrg { "glRenderbufferStorage", 43, -1 }, 656af69d88dSmrg { "glGetRenderbufferParameteriv", 43, -1 }, 657af69d88dSmrg { "glIsFramebuffer", 43, -1 }, 658af69d88dSmrg { "glBindFramebuffer", 43, -1 }, 659af69d88dSmrg { "glDeleteFramebuffers", 43, -1 }, 660af69d88dSmrg { "glGenFramebuffers", 43, -1 }, 661af69d88dSmrg { "glCheckFramebufferStatus", 43, -1 }, 662af69d88dSmrg { "glFramebufferTexture1D", 43, -1 }, 663af69d88dSmrg { "glFramebufferTexture2D", 43, -1 }, 664af69d88dSmrg { "glFramebufferTexture3D", 43, -1 }, 665af69d88dSmrg { "glFramebufferRenderbuffer", 43, -1 }, 666af69d88dSmrg { "glGetFramebufferAttachmentParameteriv", 43, -1 }, 667af69d88dSmrg { "glGenerateMipmap", 43, -1 }, 668af69d88dSmrg { "glBlitFramebuffer", 43, -1 }, 669af69d88dSmrg { "glRenderbufferStorageMultisample", 43, -1 }, 670af69d88dSmrg { "glFramebufferTextureLayer", 43, -1 }, 671af69d88dSmrg { "glMapBufferRange", 43, -1 }, 672af69d88dSmrg { "glFlushMappedBufferRange", 43, -1 }, 673af69d88dSmrg { "glBindVertexArray", 43, -1 }, 674af69d88dSmrg { "glDeleteVertexArrays", 43, -1 }, 675af69d88dSmrg { "glGenVertexArrays", 43, -1 }, 676af69d88dSmrg { "glIsVertexArray", 43, -1 }, 677af69d88dSmrg { "glGetUniformIndices", 43, -1 }, 678af69d88dSmrg { "glGetActiveUniformsiv", 43, -1 }, 679af69d88dSmrg { "glGetActiveUniformName", 43, -1 }, 680af69d88dSmrg { "glGetUniformBlockIndex", 43, -1 }, 681af69d88dSmrg { "glGetActiveUniformBlockiv", 43, -1 }, 682af69d88dSmrg { "glGetActiveUniformBlockName", 43, -1 }, 683af69d88dSmrg { "glUniformBlockBinding", 43, -1 }, 684af69d88dSmrg { "glCopyBufferSubData", 43, -1 }, 685af69d88dSmrg { "glDrawElementsBaseVertex", 43, -1 }, 686af69d88dSmrg { "glDrawRangeElementsBaseVertex", 43, -1 }, 687af69d88dSmrg { "glDrawElementsInstancedBaseVertex", 43, -1 }, 688af69d88dSmrg { "glMultiDrawElementsBaseVertex", 43, -1 }, 689af69d88dSmrg { "glProvokingVertex", 43, -1 }, 690af69d88dSmrg { "glFenceSync", 43, -1 }, 691af69d88dSmrg { "glIsSync", 43, -1 }, 692af69d88dSmrg { "glDeleteSync", 43, -1 }, 693af69d88dSmrg { "glClientWaitSync", 43, -1 }, 694af69d88dSmrg { "glWaitSync", 43, -1 }, 695af69d88dSmrg { "glGetInteger64v", 43, -1 }, 696af69d88dSmrg { "glGetSynciv", 43, -1 }, 697af69d88dSmrg { "glTexImage2DMultisample", 43, -1 }, 698af69d88dSmrg { "glTexImage3DMultisample", 43, -1 }, 699af69d88dSmrg { "glGetMultisamplefv", 43, -1 }, 700af69d88dSmrg { "glSampleMaski", 43, -1 }, 701af69d88dSmrg { "glBlendEquationiARB", 43, -1 }, 702af69d88dSmrg { "glBlendEquationSeparateiARB", 43, -1 }, 703af69d88dSmrg { "glBlendFunciARB", 43, -1 }, 704af69d88dSmrg { "glBlendFuncSeparateiARB", 43, -1 }, 705af69d88dSmrg { "glMinSampleShadingARB", 43, -1 }, // XXX: Add to xml 706af69d88dSmrg { "glBindFragDataLocationIndexed", 43, -1 }, 707af69d88dSmrg { "glGetFragDataIndex", 43, -1 }, 708af69d88dSmrg { "glGenSamplers", 43, -1 }, 709af69d88dSmrg { "glDeleteSamplers", 43, -1 }, 710af69d88dSmrg { "glIsSampler", 43, -1 }, 711af69d88dSmrg { "glBindSampler", 43, -1 }, 712af69d88dSmrg { "glSamplerParameteri", 43, -1 }, 713af69d88dSmrg { "glSamplerParameteriv", 43, -1 }, 714af69d88dSmrg { "glSamplerParameterf", 43, -1 }, 715af69d88dSmrg { "glSamplerParameterfv", 43, -1 }, 716af69d88dSmrg { "glSamplerParameterIiv", 43, -1 }, 717af69d88dSmrg { "glSamplerParameterIuiv", 43, -1 }, 718af69d88dSmrg { "glGetSamplerParameteriv", 43, -1 }, 719af69d88dSmrg { "glGetSamplerParameterIiv", 43, -1 }, 720af69d88dSmrg { "glGetSamplerParameterfv", 43, -1 }, 721af69d88dSmrg { "glGetSamplerParameterIuiv", 43, -1 }, 722af69d88dSmrg { "glQueryCounter", 43, -1 }, 723af69d88dSmrg { "glGetQueryObjecti64v", 43, -1 }, 724af69d88dSmrg { "glGetQueryObjectui64v", 43, -1 }, 725af69d88dSmrg { "glVertexP2ui", 43, -1 }, 726af69d88dSmrg { "glVertexP2uiv", 43, -1 }, 727af69d88dSmrg { "glVertexP3ui", 43, -1 }, 728af69d88dSmrg { "glVertexP3uiv", 43, -1 }, 729af69d88dSmrg { "glVertexP4ui", 43, -1 }, 730af69d88dSmrg { "glVertexP4uiv", 43, -1 }, 731af69d88dSmrg { "glTexCoordP1ui", 43, -1 }, 732af69d88dSmrg { "glTexCoordP1uiv", 43, -1 }, 733af69d88dSmrg { "glTexCoordP2ui", 43, -1 }, 734af69d88dSmrg { "glTexCoordP2uiv", 43, -1 }, 735af69d88dSmrg { "glTexCoordP3ui", 43, -1 }, 736af69d88dSmrg { "glTexCoordP3uiv", 43, -1 }, 737af69d88dSmrg { "glTexCoordP4ui", 43, -1 }, 738af69d88dSmrg { "glTexCoordP4uiv", 43, -1 }, 739af69d88dSmrg { "glMultiTexCoordP1ui", 43, -1 }, 740af69d88dSmrg { "glMultiTexCoordP1uiv", 43, -1 }, 741af69d88dSmrg { "glMultiTexCoordP2ui", 43, -1 }, 742af69d88dSmrg { "glMultiTexCoordP2uiv", 43, -1 }, 743af69d88dSmrg { "glMultiTexCoordP3ui", 43, -1 }, 744af69d88dSmrg { "glMultiTexCoordP3uiv", 43, -1 }, 745af69d88dSmrg { "glMultiTexCoordP4ui", 43, -1 }, 746af69d88dSmrg { "glMultiTexCoordP4uiv", 43, -1 }, 747af69d88dSmrg { "glNormalP3ui", 43, -1 }, 748af69d88dSmrg { "glNormalP3uiv", 43, -1 }, 749af69d88dSmrg { "glColorP3ui", 43, -1 }, 750af69d88dSmrg { "glColorP3uiv", 43, -1 }, 751af69d88dSmrg { "glColorP4ui", 43, -1 }, 752af69d88dSmrg { "glColorP4uiv", 43, -1 }, 753af69d88dSmrg { "glSecondaryColorP3ui", 43, -1 }, 754af69d88dSmrg { "glSecondaryColorP3uiv", 43, -1 }, 755af69d88dSmrg { "glVertexAttribP1ui", 43, -1 }, 756af69d88dSmrg { "glVertexAttribP1uiv", 43, -1 }, 757af69d88dSmrg { "glVertexAttribP2ui", 43, -1 }, 758af69d88dSmrg { "glVertexAttribP2uiv", 43, -1 }, 759af69d88dSmrg { "glVertexAttribP3ui", 43, -1 }, 760af69d88dSmrg { "glVertexAttribP3uiv", 43, -1 }, 761af69d88dSmrg { "glVertexAttribP4ui", 43, -1 }, 762af69d88dSmrg { "glVertexAttribP4uiv", 43, -1 }, 763af69d88dSmrg { "glDrawArraysIndirect", 43, -1 }, 764af69d88dSmrg { "glDrawElementsIndirect", 43, -1 }, 765af69d88dSmrg { "glBindTransformFeedback", 43, -1 }, 766af69d88dSmrg { "glDeleteTransformFeedbacks", 43, -1 }, 767af69d88dSmrg { "glGenTransformFeedbacks", 43, -1 }, 768af69d88dSmrg { "glIsTransformFeedback", 43, -1 }, 769af69d88dSmrg { "glPauseTransformFeedback", 43, -1 }, 770af69d88dSmrg { "glResumeTransformFeedback", 43, -1 }, 771af69d88dSmrg { "glDrawTransformFeedback", 43, -1 }, 772af69d88dSmrg { "glDrawTransformFeedbackStream", 43, -1 }, 773af69d88dSmrg { "glBeginQueryIndexed", 43, -1 }, 774af69d88dSmrg { "glEndQueryIndexed", 43, -1 }, 775af69d88dSmrg { "glGetQueryIndexediv", 43, -1 }, 776af69d88dSmrg { "glReleaseShaderCompiler", 43, -1 }, 777af69d88dSmrg { "glShaderBinary", 43, -1 }, 778af69d88dSmrg { "glGetShaderPrecisionFormat", 43, -1 }, 779af69d88dSmrg { "glDepthRangef", 43, -1 }, 780af69d88dSmrg { "glClearDepthf", 43, -1 }, 781af69d88dSmrg { "glGetProgramBinary", 43, -1 }, 782af69d88dSmrg { "glProgramBinary", 43, -1 }, 783af69d88dSmrg { "glProgramParameteri", 43, -1 }, 784af69d88dSmrg { "glUseProgramStages", 43, -1 }, 785af69d88dSmrg { "glActiveShaderProgram", 43, -1 }, 786af69d88dSmrg { "glCreateShaderProgramv", 43, -1 }, 787af69d88dSmrg { "glBindProgramPipeline", 43, -1 }, 788af69d88dSmrg { "glDeleteProgramPipelines", 43, -1 }, 789af69d88dSmrg { "glGenProgramPipelines", 43, -1 }, 790af69d88dSmrg { "glIsProgramPipeline", 43, -1 }, 791af69d88dSmrg { "glGetProgramPipelineiv", 43, -1 }, 79201e04c3fSmrg { "glProgramUniform1d", 43, -1 }, 79301e04c3fSmrg { "glProgramUniform1dv", 43, -1 }, 794af69d88dSmrg { "glProgramUniform1i", 43, -1 }, 795af69d88dSmrg { "glProgramUniform1iv", 43, -1 }, 796af69d88dSmrg { "glProgramUniform1f", 43, -1 }, 797af69d88dSmrg { "glProgramUniform1fv", 43, -1 }, 798af69d88dSmrg { "glProgramUniform1ui", 43, -1 }, 799af69d88dSmrg { "glProgramUniform1uiv", 43, -1 }, 800af69d88dSmrg { "glProgramUniform2i", 43, -1 }, 801af69d88dSmrg { "glProgramUniform2iv", 43, -1 }, 802af69d88dSmrg { "glProgramUniform2f", 43, -1 }, 803af69d88dSmrg { "glProgramUniform2fv", 43, -1 }, 80401e04c3fSmrg { "glProgramUniform2d", 40, -1 }, 80501e04c3fSmrg { "glProgramUniform2dv", 40, -1 }, 806af69d88dSmrg { "glProgramUniform2ui", 43, -1 }, 807af69d88dSmrg { "glProgramUniform2uiv", 43, -1 }, 808af69d88dSmrg { "glProgramUniform3i", 43, -1 }, 809af69d88dSmrg { "glProgramUniform3iv", 43, -1 }, 810af69d88dSmrg { "glProgramUniform3f", 43, -1 }, 811af69d88dSmrg { "glProgramUniform3fv", 43, -1 }, 81201e04c3fSmrg { "glProgramUniform3d", 40, -1 }, 81301e04c3fSmrg { "glProgramUniform3dv", 40, -1 }, 814af69d88dSmrg { "glProgramUniform3ui", 43, -1 }, 815af69d88dSmrg { "glProgramUniform3uiv", 43, -1 }, 816af69d88dSmrg { "glProgramUniform4i", 43, -1 }, 817af69d88dSmrg { "glProgramUniform4iv", 43, -1 }, 81801e04c3fSmrg { "glProgramUniform4d", 43, -1 }, 81901e04c3fSmrg { "glProgramUniform4dv", 43, -1 }, 820af69d88dSmrg { "glProgramUniform4f", 43, -1 }, 821af69d88dSmrg { "glProgramUniform4fv", 43, -1 }, 822af69d88dSmrg { "glProgramUniform4ui", 43, -1 }, 823af69d88dSmrg { "glProgramUniform4uiv", 43, -1 }, 82401e04c3fSmrg { "glProgramUniformMatrix2dv", 43, -1 }, 825af69d88dSmrg { "glProgramUniformMatrix2fv", 43, -1 }, 82601e04c3fSmrg { "glProgramUniformMatrix3dv", 43, -1 }, 827af69d88dSmrg { "glProgramUniformMatrix3fv", 43, -1 }, 82801e04c3fSmrg { "glProgramUniformMatrix4dv", 43, -1 }, 829af69d88dSmrg { "glProgramUniformMatrix4fv", 43, -1 }, 83001e04c3fSmrg { "glProgramUniformMatrix2x3dv", 43, -1 }, 831af69d88dSmrg { "glProgramUniformMatrix2x3fv", 43, -1 }, 83201e04c3fSmrg { "glProgramUniformMatrix3x2dv", 43, -1 }, 833af69d88dSmrg { "glProgramUniformMatrix3x2fv", 43, -1 }, 83401e04c3fSmrg { "glProgramUniformMatrix2x4dv", 43, -1 }, 835af69d88dSmrg { "glProgramUniformMatrix2x4fv", 43, -1 }, 83601e04c3fSmrg { "glProgramUniformMatrix4x2dv", 43, -1 }, 837af69d88dSmrg { "glProgramUniformMatrix4x2fv", 43, -1 }, 83801e04c3fSmrg { "glProgramUniformMatrix3x4dv", 43, -1 }, 839af69d88dSmrg { "glProgramUniformMatrix3x4fv", 43, -1 }, 84001e04c3fSmrg { "glProgramUniformMatrix4x3dv", 43, -1 }, 841af69d88dSmrg { "glProgramUniformMatrix4x3fv", 43, -1 }, 842af69d88dSmrg { "glValidateProgramPipeline", 43, -1 }, 843af69d88dSmrg { "glGetProgramPipelineInfoLog", 43, -1 }, 844af69d88dSmrg { "glGetFloati_v", 43, -1 }, 845af69d88dSmrg { "glGetDoublei_v", 43, -1 }, 846af69d88dSmrg// { "glCreateSyncFromCLeventARB", 43, -1 }, // XXX: Add to xml 847af69d88dSmrg { "glGetGraphicsResetStatusARB", 43, -1 }, 848af69d88dSmrg { "glGetnMapdvARB", 43, -1 }, 849af69d88dSmrg { "glGetnMapfvARB", 43, -1 }, 850af69d88dSmrg { "glGetnMapivARB", 43, -1 }, 851af69d88dSmrg { "glGetnPixelMapfvARB", 43, -1 }, 852af69d88dSmrg { "glGetnPixelMapuivARB", 43, -1 }, 853af69d88dSmrg { "glGetnPixelMapusvARB", 43, -1 }, 854af69d88dSmrg { "glGetnPolygonStippleARB", 43, -1 }, 855af69d88dSmrg { "glGetnColorTableARB", 43, -1 }, 856af69d88dSmrg { "glGetnConvolutionFilterARB", 43, -1 }, 857af69d88dSmrg { "glGetnSeparableFilterARB", 43, -1 }, 858af69d88dSmrg { "glGetnHistogramARB", 43, -1 }, 859af69d88dSmrg { "glGetnMinmaxARB", 43, -1 }, 860af69d88dSmrg { "glGetnTexImageARB", 43, -1 }, 861af69d88dSmrg { "glReadnPixelsARB", 43, -1 }, 862af69d88dSmrg { "glGetnCompressedTexImageARB", 43, -1 }, 863af69d88dSmrg { "glGetnUniformfvARB", 43, -1 }, 864af69d88dSmrg { "glGetnUniformivARB", 43, -1 }, 865af69d88dSmrg { "glGetnUniformuivARB", 43, -1 }, 866af69d88dSmrg { "glGetnUniformdvARB", 43, -1 }, 867af69d88dSmrg { "glDrawArraysInstancedBaseInstance", 43, -1 }, 868af69d88dSmrg { "glDrawElementsInstancedBaseInstance", 43, -1 }, 869af69d88dSmrg { "glDrawElementsInstancedBaseVertexBaseInstance", 43, -1 }, 870af69d88dSmrg { "glDrawTransformFeedbackInstanced", 43, -1 }, 871af69d88dSmrg { "glDrawTransformFeedbackStreamInstanced", 43, -1 }, 872af69d88dSmrg// { "glGetInternalformativ", 43, -1 }, // XXX: Add to xml 873af69d88dSmrg { "glGetActiveAtomicCounterBufferiv", 43, -1 }, 874af69d88dSmrg { "glBindImageTexture", 43, -1 }, 875af69d88dSmrg { "glMemoryBarrier", 43, -1 }, 876af69d88dSmrg { "glTexStorage1D", 43, -1 }, 877af69d88dSmrg { "glTexStorage2D", 43, -1 }, 878af69d88dSmrg { "glTexStorage3D", 43, -1 }, 879af69d88dSmrg { "glTextureStorage1DEXT", 43, -1 }, 880af69d88dSmrg { "glTextureStorage2DEXT", 43, -1 }, 881af69d88dSmrg { "glTextureStorage3DEXT", 43, -1 }, 882af69d88dSmrg { "glClearBufferData", 43, -1 }, 883af69d88dSmrg { "glClearBufferSubData", 43, -1 }, 8847ec681f3Smrg { "glClearNamedBufferDataEXT", 43, -1 }, 8857ec681f3Smrg { "glClearNamedBufferSubDataEXT", 43, -1 }, 886af69d88dSmrg { "glCopyImageSubData", 43, -1 }, 887af69d88dSmrg { "glTextureView", 43, -1 }, 888af69d88dSmrg { "glBindVertexBuffer", 43, -1 }, 889af69d88dSmrg { "glVertexAttribFormat", 43, -1 }, 890af69d88dSmrg { "glVertexAttribIFormat", 43, -1 }, 891af69d88dSmrg { "glVertexAttribLFormat", 43, -1 }, 892af69d88dSmrg { "glVertexAttribBinding", 43, -1 }, 893af69d88dSmrg { "glVertexBindingDivisor", 43, -1 }, 8947ec681f3Smrg { "glVertexArrayBindVertexBufferEXT", 43, -1 }, 8957ec681f3Smrg { "glVertexArrayVertexAttribFormatEXT", 43, -1 }, 8967ec681f3Smrg { "glVertexArrayVertexAttribIFormatEXT", 43, -1 }, 8977ec681f3Smrg { "glVertexArrayVertexAttribLFormatEXT", 43, -1 }, 8987ec681f3Smrg { "glVertexArrayVertexAttribBindingEXT", 43, -1 }, 8997ec681f3Smrg { "glVertexArrayVertexBindingDivisorEXT", 43, -1 }, 90001e04c3fSmrg { "glFramebufferParameteri", 43, -1 }, 90101e04c3fSmrg { "glGetFramebufferParameteriv", 43, -1 }, 9027ec681f3Smrg { "glNamedFramebufferParameteriEXT", 43, -1 }, 9037ec681f3Smrg { "glGetNamedFramebufferParameterivEXT", 43, -1 }, 904af69d88dSmrg// { "glGetInternalformati64v", 43, -1 }, // XXX: Add to xml 905af69d88dSmrg { "glInvalidateTexSubImage", 43, -1 }, 906af69d88dSmrg { "glInvalidateTexImage", 43, -1 }, 907af69d88dSmrg { "glInvalidateBufferSubData", 43, -1 }, 908af69d88dSmrg { "glInvalidateBufferData", 43, -1 }, 909af69d88dSmrg { "glInvalidateFramebuffer", 43, -1 }, 910af69d88dSmrg { "glInvalidateSubFramebuffer", 43, -1 }, 911af69d88dSmrg { "glMultiDrawArraysIndirect", 43, -1 }, 912af69d88dSmrg { "glMultiDrawElementsIndirect", 43, -1 }, 91301e04c3fSmrg { "glGetProgramInterfaceiv", 43, -1 }, 91401e04c3fSmrg { "glGetProgramResourceIndex", 43, -1 }, 91501e04c3fSmrg { "glGetProgramResourceName", 43, -1 }, 91601e04c3fSmrg { "glGetProgramResourceiv", 43, -1 }, 91701e04c3fSmrg { "glGetProgramResourceLocation", 43, -1 }, 91801e04c3fSmrg { "glGetProgramResourceLocationIndex", 43, -1 }, 91901e04c3fSmrg { "glShaderStorageBlockBinding", 43, -1 }, 9207ec681f3Smrg { "glTextureBufferRangeEXT", 43, -1 }, 921af69d88dSmrg { "glTexStorage2DMultisample", 43, -1 }, 922af69d88dSmrg { "glTexStorage3DMultisample", 43, -1 }, 9237ec681f3Smrg { "glTextureStorage2DMultisampleEXT", 43, -1 }, 9247ec681f3Smrg { "glTextureStorage3DMultisampleEXT", 43, -1 }, 925af69d88dSmrg 92601e04c3fSmrg { "glViewportArrayv", 43, -1 }, 92701e04c3fSmrg { "glViewportIndexedf", 43, -1 }, 92801e04c3fSmrg { "glViewportIndexedfv", 43, -1 }, 92901e04c3fSmrg { "glScissorArrayv", 43, -1 }, 93001e04c3fSmrg { "glScissorIndexed", 43, -1 }, 93101e04c3fSmrg { "glScissorIndexedv", 43, -1 }, 93201e04c3fSmrg { "glDepthRangeArrayv", 43, -1 }, 93301e04c3fSmrg { "glDepthRangeIndexed", 43, -1 }, 93401e04c3fSmrg 9357ec681f3Smrg/* GL 4.4 */ 9367ec681f3Smrg /* GL_NV_alpha_to_coverage_dither_control */ 9377ec681f3Smrg { "glAlphaToCoverageDitherControlNV", 44, -1 }, 9387ec681f3Smrg 93901e04c3fSmrg/* GL 4.5 */ 94001e04c3fSmrg /* aliased versions checked above */ 94101e04c3fSmrg //{ "glGetGraphicsResetStatus", 45, -1 }, 94201e04c3fSmrg //{ "glReadnPixels", 45, -1 }, 94301e04c3fSmrg //{ "glGetnUniformfv", 45, -1 }, 94401e04c3fSmrg //{ "glGetnUniformiv", 45, -1 }, 94501e04c3fSmrg //{ "glGetnUniformuiv", 45, -1 }, 94601e04c3fSmrg { "glMemoryBarrierByRegion", 45, -1 }, 94701e04c3fSmrg 94801e04c3fSmrg /* GL_ARB_direct_state_access */ 94901e04c3fSmrg { "glCreateTransformFeedbacks", 45, -1 }, 95001e04c3fSmrg { "glTransformFeedbackBufferBase", 45, -1 }, 95101e04c3fSmrg { "glTransformFeedbackBufferRange", 45, -1 }, 95201e04c3fSmrg { "glGetTransformFeedbackiv", 45, -1 }, 95301e04c3fSmrg { "glGetTransformFeedbacki_v", 45, -1 }, 95401e04c3fSmrg { "glGetTransformFeedbacki64_v", 45, -1 }, 95501e04c3fSmrg { "glCreateBuffers", 45, -1 }, 95601e04c3fSmrg { "glNamedBufferStorage", 45, -1 }, 95701e04c3fSmrg { "glNamedBufferData", 45, -1 }, 95801e04c3fSmrg { "glNamedBufferSubData", 45, -1 }, 95901e04c3fSmrg { "glCopyNamedBufferSubData", 45, -1 }, 96001e04c3fSmrg { "glClearNamedBufferData", 45, -1 }, 96101e04c3fSmrg { "glClearNamedBufferSubData", 45, -1 }, 96201e04c3fSmrg { "glMapNamedBuffer", 45, -1 }, 96301e04c3fSmrg { "glMapNamedBufferRange", 45, -1 }, 96401e04c3fSmrg { "glFlushMappedNamedBufferRange", 45, -1 }, 96501e04c3fSmrg { "glGetNamedBufferParameteriv", 45, -1 }, 96601e04c3fSmrg { "glGetNamedBufferParameteri64v", 45, -1 }, 96701e04c3fSmrg { "glGetNamedBufferPointerv", 45, -1 }, 96801e04c3fSmrg { "glGetNamedBufferSubData", 45, -1 }, 96901e04c3fSmrg { "glCreateFramebuffers", 45, -1 }, 97001e04c3fSmrg { "glNamedFramebufferRenderbuffer", 45, -1 }, 97101e04c3fSmrg { "glNamedFramebufferParameteri", 45, -1 }, 97201e04c3fSmrg { "glNamedFramebufferTexture", 45, -1 }, 97301e04c3fSmrg { "glNamedFramebufferTextureLayer", 45, -1 }, 97401e04c3fSmrg { "glNamedFramebufferDrawBuffer", 45, -1 }, 97501e04c3fSmrg { "glNamedFramebufferDrawBuffers", 45, -1 }, 97601e04c3fSmrg { "glNamedFramebufferReadBuffer", 45, -1 }, 97701e04c3fSmrg { "glInvalidateNamedFramebufferSubData", 45, -1 }, 97801e04c3fSmrg { "glInvalidateNamedFramebufferData", 45, -1 }, 97901e04c3fSmrg { "glClearNamedFramebufferiv", 45, -1 }, 98001e04c3fSmrg { "glClearNamedFramebufferuiv", 45, -1 }, 98101e04c3fSmrg { "glClearNamedFramebufferfv", 45, -1 }, 98201e04c3fSmrg { "glClearNamedFramebufferfi", 45, -1 }, 98301e04c3fSmrg { "glBlitNamedFramebuffer", 45, -1 }, 98401e04c3fSmrg { "glCheckNamedFramebufferStatus", 45, -1 }, 98501e04c3fSmrg { "glGetNamedFramebufferParameteriv", 45, -1 }, 98601e04c3fSmrg { "glGetNamedFramebufferAttachmentParameteriv", 45, -1 }, 98701e04c3fSmrg { "glCreateRenderbuffers", 45, -1 }, 98801e04c3fSmrg { "glNamedRenderbufferStorage", 45, -1 }, 98901e04c3fSmrg { "glNamedRenderbufferStorageMultisample", 45, -1 }, 99001e04c3fSmrg { "glGetNamedRenderbufferParameteriv", 45, -1 }, 99101e04c3fSmrg { "glCreateTextures", 45, -1 }, 99201e04c3fSmrg { "glTextureStorage1D", 45, -1 }, 99301e04c3fSmrg { "glTextureStorage2D", 45, -1 }, 99401e04c3fSmrg { "glTextureStorage3D", 45, -1 }, 99501e04c3fSmrg { "glTextureSubImage1D", 45, -1 }, 99601e04c3fSmrg { "glTextureSubImage2D", 45, -1 }, 99701e04c3fSmrg { "glTextureSubImage3D", 45, -1 }, 99801e04c3fSmrg { "glBindTextureUnit", 45, -1 }, 99901e04c3fSmrg { "glTextureParameterf", 45, -1 }, 100001e04c3fSmrg { "glTextureParameterfv", 45, -1 }, 100101e04c3fSmrg { "glTextureParameteri", 45, -1 }, 100201e04c3fSmrg { "glTextureParameterIiv", 45, -1 }, 100301e04c3fSmrg { "glTextureParameterIuiv", 45, -1 }, 100401e04c3fSmrg { "glTextureParameteriv", 45, -1 }, 100501e04c3fSmrg { "glGetTextureLevelParameterfv", 45, -1 }, 100601e04c3fSmrg { "glGetTextureLevelParameteriv", 45, -1 }, 100701e04c3fSmrg { "glGetTextureParameterfv", 45, -1 }, 100801e04c3fSmrg { "glGetTextureParameterIiv", 45, -1 }, 100901e04c3fSmrg { "glGetTextureParameterIuiv", 45, -1 }, 101001e04c3fSmrg { "glGetTextureParameteriv", 45, -1 }, 101101e04c3fSmrg { "glCopyTextureSubImage1D", 45, -1 }, 101201e04c3fSmrg { "glCopyTextureSubImage2D", 45, -1 }, 101301e04c3fSmrg { "glCopyTextureSubImage3D", 45, -1 }, 101401e04c3fSmrg { "glGetTextureImage", 45, -1 }, 101501e04c3fSmrg { "glGetCompressedTextureImage", 45, -1 }, 101601e04c3fSmrg { "glCompressedTextureSubImage1D", 45, -1 }, 101701e04c3fSmrg { "glCompressedTextureSubImage2D", 45, -1 }, 101801e04c3fSmrg { "glCompressedTextureSubImage3D", 45, -1 }, 101901e04c3fSmrg { "glGenerateTextureMipmap", 45, -1 }, 102001e04c3fSmrg { "glTextureStorage2DMultisample", 45, -1 }, 102101e04c3fSmrg { "glTextureStorage3DMultisample", 45, -1 }, 102201e04c3fSmrg { "glTextureBuffer", 45, -1 }, 102301e04c3fSmrg { "glTextureBufferRange", 45, -1 }, 102401e04c3fSmrg { "glCreateVertexArrays", 45, -1 }, 102501e04c3fSmrg { "glDisableVertexArrayAttrib", 45, -1 }, 102601e04c3fSmrg { "glEnableVertexArrayAttrib", 45, -1 }, 102701e04c3fSmrg { "glVertexArrayElementBuffer", 45, -1 }, 102801e04c3fSmrg { "glVertexArrayVertexBuffer", 45, -1 }, 102901e04c3fSmrg { "glVertexArrayVertexBuffers", 45, -1 }, 103001e04c3fSmrg { "glVertexArrayAttribFormat", 45, -1 }, 103101e04c3fSmrg { "glVertexArrayAttribIFormat", 45, -1 }, 103201e04c3fSmrg { "glVertexArrayAttribLFormat", 45, -1 }, 103301e04c3fSmrg { "glVertexArrayAttribBinding", 45, -1 }, 103401e04c3fSmrg { "glVertexArrayBindingDivisor", 45, -1 }, 103501e04c3fSmrg { "glGetVertexArrayiv", 45, -1 }, 103601e04c3fSmrg { "glGetVertexArrayIndexediv", 45, -1 }, 103701e04c3fSmrg { "glGetVertexArrayIndexed64iv", 45, -1 }, 103801e04c3fSmrg { "glCreateSamplers", 45, -1 }, 103901e04c3fSmrg { "glCreateProgramPipelines", 45, -1 }, 104001e04c3fSmrg { "glCreateQueries", 45, -1 }, 104101e04c3fSmrg { "glGetQueryBufferObjectiv", 45, -1 }, 104201e04c3fSmrg { "glGetQueryBufferObjectuiv", 45, -1 }, 104301e04c3fSmrg { "glGetQueryBufferObjecti64v", 45, -1 }, 104401e04c3fSmrg { "glGetQueryBufferObjectui64v", 45, -1 }, 104501e04c3fSmrg 10467ec681f3Smrg /* GL_EXT_direct_state_access - GL 1.0 */ 10477ec681f3Smrg { "glMatrixLoadfEXT", 10, -1 }, 10487ec681f3Smrg { "glMatrixLoaddEXT", 10, -1 }, 10497ec681f3Smrg { "glMatrixMultfEXT", 10, -1 }, 10507ec681f3Smrg { "glMatrixMultdEXT", 10, -1 }, 10517ec681f3Smrg { "glMatrixLoadIdentityEXT", 10, -1 }, 10527ec681f3Smrg { "glMatrixRotatefEXT", 10, -1 }, 10537ec681f3Smrg { "glMatrixRotatedEXT", 10, -1 }, 10547ec681f3Smrg { "glMatrixScalefEXT", 10, -1 }, 10557ec681f3Smrg { "glMatrixScaledEXT", 10, -1 }, 10567ec681f3Smrg { "glMatrixTranslatefEXT", 10, -1 }, 10577ec681f3Smrg { "glMatrixTranslatedEXT", 10, -1 }, 10587ec681f3Smrg { "glMatrixOrthoEXT", 10, -1 }, 10597ec681f3Smrg { "glMatrixFrustumEXT", 10, -1 }, 10607ec681f3Smrg { "glMatrixPushEXT", 10, -1 }, 10617ec681f3Smrg { "glMatrixPopEXT", 10, -1 }, 10627ec681f3Smrg /* GL_EXT_direct_state_access - GL 1.1 */ 10637ec681f3Smrg { "glClientAttribDefaultEXT", 11, -1 }, 10647ec681f3Smrg { "glPushClientAttribDefaultEXT", 11, -1 }, 10657ec681f3Smrg { "glTextureParameteriEXT", 11, -1 }, 10667ec681f3Smrg { "glTextureParameterivEXT", 11, -1 }, 10677ec681f3Smrg { "glTextureParameterfEXT", 11, -1 }, 10687ec681f3Smrg { "glTextureParameterfvEXT", 11, -1 }, 10697ec681f3Smrg { "glTextureImage1DEXT", 11, -1 }, 10707ec681f3Smrg { "glTextureImage2DEXT", 11, -1 }, 10717ec681f3Smrg { "glTextureSubImage1DEXT", 11, -1 }, 10727ec681f3Smrg { "glTextureSubImage2DEXT", 11, -1 }, 10737ec681f3Smrg { "glCopyTextureImage1DEXT", 11, -1 }, 10747ec681f3Smrg { "glCopyTextureImage2DEXT", 11, -1 }, 10757ec681f3Smrg { "glCopyTextureSubImage1DEXT", 11, -1 }, 10767ec681f3Smrg { "glCopyTextureSubImage2DEXT", 11, -1 }, 10777ec681f3Smrg { "glGetTextureImageEXT", 11, -1 }, 10787ec681f3Smrg { "glGetTextureParameterfvEXT", 11, -1 }, 10797ec681f3Smrg { "glGetTextureParameterivEXT", 11, -1 }, 10807ec681f3Smrg { "glGetTextureLevelParameterfvEXT", 11, -1 }, 10817ec681f3Smrg { "glGetTextureLevelParameterivEXT", 11, -1 }, 10827ec681f3Smrg /* GL_EXT_direct_state_access - GL 1.2 */ 10837ec681f3Smrg { "glTextureImage3DEXT", 12, -1 }, 10847ec681f3Smrg { "glTextureSubImage3DEXT", 12, -1 }, 10857ec681f3Smrg { "glCopyTextureSubImage3DEXT", 12, -1 }, 10867ec681f3Smrg /* GL_EXT_direct_state_access - GL 1.2.1 */ 10877ec681f3Smrg { "glBindMultiTextureEXT", 12, -1 }, 10887ec681f3Smrg { "glMultiTexCoordPointerEXT", 12, -1 }, 10897ec681f3Smrg { "glMultiTexEnvfEXT", 12, -1 }, 10907ec681f3Smrg { "glMultiTexEnvfvEXT", 12, -1 }, 10917ec681f3Smrg { "glMultiTexEnviEXT", 12, -1 }, 10927ec681f3Smrg { "glMultiTexEnvivEXT", 12, -1 }, 10937ec681f3Smrg { "glMultiTexGendEXT", 12, -1 }, 10947ec681f3Smrg { "glMultiTexGendvEXT", 12, -1 }, 10957ec681f3Smrg { "glMultiTexGenfEXT", 12, -1 }, 10967ec681f3Smrg { "glMultiTexGenfvEXT", 12, -1 }, 10977ec681f3Smrg { "glMultiTexGeniEXT", 12, -1 }, 10987ec681f3Smrg { "glMultiTexGenivEXT", 12, -1 }, 10997ec681f3Smrg { "glGetMultiTexEnvfvEXT", 12, -1 }, 11007ec681f3Smrg { "glGetMultiTexEnvivEXT", 12, -1 }, 11017ec681f3Smrg { "glGetMultiTexGendvEXT", 12, -1 }, 11027ec681f3Smrg { "glGetMultiTexGenfvEXT", 12, -1 }, 11037ec681f3Smrg { "glGetMultiTexGenivEXT", 12, -1 }, 11047ec681f3Smrg { "glMultiTexParameterfEXT", 12, -1 }, 11057ec681f3Smrg { "glMultiTexParameterfvEXT", 12, -1 }, 11067ec681f3Smrg { "glMultiTexParameteriEXT", 12, -1 }, 11077ec681f3Smrg { "glMultiTexParameterivEXT", 12, -1 }, 11087ec681f3Smrg { "glMultiTexImage1DEXT", 12, -1 }, 11097ec681f3Smrg { "glMultiTexImage2DEXT", 12, -1 }, 11107ec681f3Smrg { "glMultiTexSubImage1DEXT", 12, -1 }, 11117ec681f3Smrg { "glMultiTexSubImage2DEXT", 12, -1 }, 11127ec681f3Smrg { "glCopyMultiTexImage1DEXT", 12, -1 }, 11137ec681f3Smrg { "glCopyMultiTexImage2DEXT", 12, -1 }, 11147ec681f3Smrg { "glCopyMultiTexSubImage1DEXT", 12, -1 }, 11157ec681f3Smrg { "glCopyMultiTexSubImage2DEXT", 12, -1 }, 11167ec681f3Smrg { "glGetMultiTexImageEXT", 12, -1 }, 11177ec681f3Smrg { "glGetMultiTexParameterfvEXT", 12, -1 }, 11187ec681f3Smrg { "glGetMultiTexParameterivEXT", 12, -1 }, 11197ec681f3Smrg { "glGetMultiTexLevelParameterfvEXT", 12, -1 }, 11207ec681f3Smrg { "glGetMultiTexLevelParameterivEXT", 12, -1 }, 11217ec681f3Smrg { "glMultiTexImage3DEXT", 12, -1 }, 11227ec681f3Smrg { "glMultiTexSubImage3DEXT", 12, -1 }, 11237ec681f3Smrg { "glCopyMultiTexSubImage3DEXT", 12, -1 }, 11247ec681f3Smrg { "glEnableClientStateIndexedEXT", 12, -1 }, 11257ec681f3Smrg { "glDisableClientStateIndexedEXT", 12, -1 }, 11267ec681f3Smrg { "glGetPointerIndexedvEXT", 12, -1 }, 11277ec681f3Smrg /* GL_EXT_direct_state_access - ARB_vertex_program */ 11287ec681f3Smrg { "glNamedProgramStringEXT", 10, -1 }, 11297ec681f3Smrg { "glNamedProgramLocalParameter4dEXT", 10, -1 }, 11307ec681f3Smrg { "glNamedProgramLocalParameter4dvEXT", 10, -1 }, 11317ec681f3Smrg { "glNamedProgramLocalParameter4fEXT", 10, -1 }, 11327ec681f3Smrg { "glNamedProgramLocalParameter4fvEXT", 10, -1 }, 11337ec681f3Smrg { "glGetNamedProgramLocalParameterdvEXT", 10, -1 }, 11347ec681f3Smrg { "glGetNamedProgramLocalParameterfvEXT", 10, -1 }, 11357ec681f3Smrg { "glGetNamedProgramivEXT", 10, -1 }, 11367ec681f3Smrg { "glGetNamedProgramStringEXT", 10, -1 }, 11377ec681f3Smrg /* GL_EXT_direct_state_access - GL 1.3 */ 11387ec681f3Smrg { "glCompressedTextureImage1DEXT", 13, -1 }, 11397ec681f3Smrg { "glCompressedTextureImage2DEXT", 13, -1 }, 11407ec681f3Smrg { "glCompressedTextureImage3DEXT", 13, -1 }, 11417ec681f3Smrg { "glCompressedTextureSubImage1DEXT", 13, -1 }, 11427ec681f3Smrg { "glCompressedTextureSubImage2DEXT", 13, -1 }, 11437ec681f3Smrg { "glCompressedTextureSubImage3DEXT", 13, -1 }, 11447ec681f3Smrg { "glGetCompressedTextureImageEXT", 13, -1 }, 11457ec681f3Smrg { "glCompressedMultiTexImage1DEXT", 13, -1 }, 11467ec681f3Smrg { "glCompressedMultiTexImage2DEXT", 13, -1 }, 11477ec681f3Smrg { "glCompressedMultiTexImage3DEXT", 13, -1 }, 11487ec681f3Smrg { "glCompressedMultiTexSubImage1DEXT", 13, -1 }, 11497ec681f3Smrg { "glCompressedMultiTexSubImage2DEXT", 13, -1 }, 11507ec681f3Smrg { "glCompressedMultiTexSubImage3DEXT", 13, -1 }, 11517ec681f3Smrg { "glGetCompressedMultiTexImageEXT", 13, -1 }, 11527ec681f3Smrg { "glMatrixLoadTransposefEXT", 13, -1 }, 11537ec681f3Smrg { "glMatrixLoadTransposedEXT", 13, -1 }, 11547ec681f3Smrg { "glMatrixMultTransposefEXT", 13, -1 }, 11557ec681f3Smrg { "glMatrixMultTransposedEXT", 13, -1 }, 11567ec681f3Smrg /* GL_EXT_direct_state_access - GL 1.5 */ 11577ec681f3Smrg { "glNamedBufferDataEXT", 15, -1 }, 11587ec681f3Smrg { "glNamedBufferSubDataEXT", 15, -1 }, 11597ec681f3Smrg { "glMapNamedBufferEXT", 15, -1 }, 11607ec681f3Smrg { "glUnmapNamedBufferEXT", 15, -1 }, 11617ec681f3Smrg { "glGetNamedBufferParameterivEXT", 15, -1 }, 11627ec681f3Smrg { "glGetNamedBufferPointervEXT", 15, -1 }, 11637ec681f3Smrg { "glGetNamedBufferSubDataEXT", 15, -1 }, 11647ec681f3Smrg /* GL_EXT_direct_state_access - GL 2.0 */ 11657ec681f3Smrg /* Added glProgramUniform*EXT functions are aliases */ 11667ec681f3Smrg /* GL_EXT_direct_state_access - GL 2.1 */ 11677ec681f3Smrg /* Added glProgramUniformMAtrix*EXT functions are aliases */ 11687ec681f3Smrg /* GL_EXT_direct_state_access - EXT_texture_buffer_object */ 11697ec681f3Smrg { "glTextureBufferEXT", 10, -1 }, 11707ec681f3Smrg { "glMultiTexBufferEXT", 10, -1 }, 11717ec681f3Smrg /* GL_EXT_direct_state_access - EXT_texture_integer */ 11727ec681f3Smrg { "glTextureParameterIivEXT", 10, -1 }, 11737ec681f3Smrg { "glTextureParameterIuivEXT", 10, -1 }, 11747ec681f3Smrg { "glGetTextureParameterIivEXT", 10, -1 }, 11757ec681f3Smrg { "glGetTextureParameterIuivEXT", 10, -1 }, 11767ec681f3Smrg { "glMultiTexParameterIivEXT", 10, -1 }, 11777ec681f3Smrg { "glMultiTexParameterIuivEXT", 10, -1 }, 11787ec681f3Smrg { "glGetMultiTexParameterIivEXT", 10, -1 }, 11797ec681f3Smrg { "glGetMultiTexParameterIuivEXT", 10, -1 }, 11807ec681f3Smrg /* GL_EXT_direct_state_access - EXT_gpu_shader4 */ 11817ec681f3Smrg /* Added glProgramUniform*u*EXT functions are aliases */ 11827ec681f3Smrg /* GL_EXT_direct_state_access - EXT_gpu_program_parameters */ 11837ec681f3Smrg { "glNamedProgramLocalParameters4fvEXT", 10, -1 }, 11847ec681f3Smrg /* GL_EXT_direct_state_access - GL 3.0 */ 11857ec681f3Smrg { "glNamedRenderbufferStorageEXT", 30, -1 }, 11867ec681f3Smrg { "glGetNamedRenderbufferParameterivEXT", 30, -1 }, 11877ec681f3Smrg { "glNamedRenderbufferStorageMultisampleEXT", 30, -1 }, 11887ec681f3Smrg { "glCheckNamedFramebufferStatusEXT", 30, -1 }, 11897ec681f3Smrg { "glNamedFramebufferTexture1DEXT", 30, -1 }, 11907ec681f3Smrg { "glNamedFramebufferTexture2DEXT", 30, -1 }, 11917ec681f3Smrg { "glNamedFramebufferTexture3DEXT", 30, -1 }, 11927ec681f3Smrg { "glNamedFramebufferRenderbufferEXT", 30, -1 }, 11937ec681f3Smrg { "glGetNamedFramebufferAttachmentParameterivEXT", 30, -1 }, 11947ec681f3Smrg { "glGenerateTextureMipmapEXT", 30, -1 }, 11957ec681f3Smrg { "glGenerateMultiTexMipmapEXT", 30, -1 }, 11967ec681f3Smrg { "glFramebufferDrawBufferEXT", 30, -1 }, 11977ec681f3Smrg { "glFramebufferDrawBuffersEXT", 30, -1 }, 11987ec681f3Smrg { "glFramebufferReadBufferEXT", 30, -1 }, 11997ec681f3Smrg { "glGetFramebufferParameterivEXT", 30, -1 }, 12007ec681f3Smrg { "glNamedCopyBufferSubDataEXT", 30, -1 }, 12017ec681f3Smrg { "glVertexArrayVertexOffsetEXT", 30, -1 }, 12027ec681f3Smrg { "glVertexArrayColorOffsetEXT", 30, -1 }, 12037ec681f3Smrg { "glVertexArrayEdgeFlagOffsetEXT", 30, -1 }, 12047ec681f3Smrg { "glVertexArrayIndexOffsetEXT", 30, -1 }, 12057ec681f3Smrg { "glVertexArrayNormalOffsetEXT", 30, -1 }, 12067ec681f3Smrg { "glVertexArrayTexCoordOffsetEXT", 30, -1 }, 12077ec681f3Smrg { "glVertexArrayMultiTexCoordOffsetEXT", 30, -1 }, 12087ec681f3Smrg { "glVertexArrayFogCoordOffsetEXT", 30, -1 }, 12097ec681f3Smrg { "glVertexArraySecondaryColorOffsetEXT", 30, -1 }, 12107ec681f3Smrg { "glVertexArrayVertexAttribOffsetEXT", 30, -1 }, 12117ec681f3Smrg { "glVertexArrayVertexAttribIOffsetEXT", 30, -1 }, 12127ec681f3Smrg { "glEnableVertexArrayEXT", 30, -1 }, 12137ec681f3Smrg { "glDisableVertexArrayEXT", 30, -1 }, 12147ec681f3Smrg { "glEnableVertexArrayAttribEXT", 30, -1 }, 12157ec681f3Smrg { "glDisableVertexArrayAttribEXT", 30, -1 }, 12167ec681f3Smrg { "glGetVertexArrayIntegervEXT", 30, -1 }, 12177ec681f3Smrg { "glGetVertexArrayPointervEXT", 30, -1 }, 12187ec681f3Smrg { "glGetVertexArrayIntegeri_vEXT", 30, -1 }, 12197ec681f3Smrg { "glGetVertexArrayPointeri_vEXT", 30, -1 }, 12207ec681f3Smrg { "glMapNamedBufferRangeEXT", 30, -1 }, 12217ec681f3Smrg { "glFlushMappedNamedBufferRangeEXT", 30, -1 }, 12227ec681f3Smrg 1223af69d88dSmrg /* GL_ARB_internalformat_query */ 1224af69d88dSmrg { "glGetInternalformativ", 30, -1 }, 1225af69d88dSmrg 122601e04c3fSmrg /* GL_ARB_internalformat_query */ 122701e04c3fSmrg { "glGetInternalformati64v", 30, -1 }, 122801e04c3fSmrg 1229af69d88dSmrg /* GL_ARB_multi_bind */ 1230af69d88dSmrg { "glBindBuffersBase", 44, -1 }, 1231af69d88dSmrg { "glBindBuffersRange", 44, -1 }, 1232af69d88dSmrg { "glBindTextures", 44, -1 }, 1233af69d88dSmrg { "glBindSamplers", 44, -1 }, 1234af69d88dSmrg { "glBindImageTextures", 44, -1 }, 1235af69d88dSmrg { "glBindVertexBuffers", 44, -1 }, 1236af69d88dSmrg 12377ec681f3Smrg /* GL_ARB_shading_language_include */ 12387ec681f3Smrg { "glNamedStringARB", 20, -1 }, 12397ec681f3Smrg { "glDeleteNamedStringARB", 20, -1 }, 12407ec681f3Smrg { "glCompileShaderIncludeARB", 20, -1 }, 12417ec681f3Smrg { "glIsNamedStringARB", 20, -1 }, 12427ec681f3Smrg { "glGetNamedStringARB", 20, -1 }, 12437ec681f3Smrg { "glGetNamedStringivARB", 20, -1 }, 12447ec681f3Smrg 1245af69d88dSmrg /* GL_KHR_debug/GL_ARB_debug_output */ 1246af69d88dSmrg { "glPushDebugGroup", 11, -1 }, 1247af69d88dSmrg { "glPopDebugGroup", 11, -1 }, 1248af69d88dSmrg { "glDebugMessageCallback", 11, -1 }, 1249af69d88dSmrg { "glDebugMessageControl", 11, -1 }, 1250af69d88dSmrg { "glDebugMessageInsert", 11, -1 }, 1251af69d88dSmrg { "glGetDebugMessageLog", 11, -1 }, 1252af69d88dSmrg { "glGetObjectLabel", 11, -1 }, 1253af69d88dSmrg { "glGetObjectPtrLabel", 11, -1 }, 1254af69d88dSmrg { "glObjectLabel", 11, -1 }, 1255af69d88dSmrg { "glObjectPtrLabel", 11, -1 }, 1256af69d88dSmrg /* aliased versions checked above */ 1257af69d88dSmrg //{ "glDebugMessageControlARB", 11, -1 }, 1258af69d88dSmrg //{ "glDebugMessageInsertARB", 11, -1 }, 1259af69d88dSmrg //{ "glDebugMessageCallbackARB", 11, -1 }, 1260af69d88dSmrg //{ "glGetDebugMessageLogARB", 11, -1 }, 1261af69d88dSmrg 1262af69d88dSmrg /* GL_AMD_performance_monitor */ 1263af69d88dSmrg { "glGetPerfMonitorGroupsAMD", 11, -1 }, 1264af69d88dSmrg { "glGetPerfMonitorCountersAMD", 11, -1 }, 1265af69d88dSmrg { "glGetPerfMonitorGroupStringAMD", 11, -1 }, 1266af69d88dSmrg { "glGetPerfMonitorCounterStringAMD", 11, -1 }, 1267af69d88dSmrg { "glGetPerfMonitorCounterInfoAMD", 11, -1 }, 1268af69d88dSmrg { "glGenPerfMonitorsAMD", 11, -1 }, 1269af69d88dSmrg { "glDeletePerfMonitorsAMD", 11, -1 }, 1270af69d88dSmrg { "glSelectPerfMonitorCountersAMD", 11, -1 }, 1271af69d88dSmrg { "glBeginPerfMonitorAMD", 11, -1 }, 1272af69d88dSmrg { "glEndPerfMonitorAMD", 11, -1 }, 1273af69d88dSmrg { "glGetPerfMonitorCounterDataAMD", 11, -1 }, 1274af69d88dSmrg 1275af69d88dSmrg /* GL_INTEL_performance_query */ 1276af69d88dSmrg { "glGetFirstPerfQueryIdINTEL", 30, -1 }, 1277af69d88dSmrg { "glGetNextPerfQueryIdINTEL", 30, -1 }, 1278af69d88dSmrg { "glGetPerfQueryIdByNameINTEL", 30, -1 }, 1279af69d88dSmrg { "glGetPerfQueryInfoINTEL", 30, -1 }, 1280af69d88dSmrg { "glGetPerfCounterInfoINTEL", 30, -1 }, 1281af69d88dSmrg { "glCreatePerfQueryINTEL", 30, -1 }, 1282af69d88dSmrg { "glDeletePerfQueryINTEL", 30, -1 }, 1283af69d88dSmrg { "glBeginPerfQueryINTEL", 30, -1 }, 1284af69d88dSmrg { "glEndPerfQueryINTEL", 30, -1 }, 1285af69d88dSmrg { "glGetPerfQueryDataINTEL", 30, -1 }, 1286af69d88dSmrg 1287af69d88dSmrg /* GL_NV_vdpau_interop */ 1288af69d88dSmrg { "glVDPAUInitNV", 11, -1 }, 1289af69d88dSmrg { "glVDPAUFiniNV", 11, -1 }, 1290af69d88dSmrg { "glVDPAURegisterVideoSurfaceNV", 11, -1 }, 1291af69d88dSmrg { "glVDPAURegisterOutputSurfaceNV", 11, -1 }, 1292af69d88dSmrg { "glVDPAUIsSurfaceNV", 11, -1 }, 1293af69d88dSmrg { "glVDPAUUnregisterSurfaceNV", 11, -1 }, 1294af69d88dSmrg { "glVDPAUGetSurfaceivNV", 11, -1 }, 1295af69d88dSmrg { "glVDPAUSurfaceAccessNV", 11, -1 }, 1296af69d88dSmrg { "glVDPAUMapSurfacesNV", 11, -1 }, 1297af69d88dSmrg { "glVDPAUUnmapSurfacesNV", 11, -1 }, 1298af69d88dSmrg 1299af69d88dSmrg /* GL_ARB_buffer_storage */ 1300af69d88dSmrg { "glBufferStorage", 43, -1 }, 13017ec681f3Smrg { "glNamedBufferStorageEXT", 43, -1 }, 1302af69d88dSmrg 1303af69d88dSmrg /* GL_ARB_clear_texture */ 1304af69d88dSmrg { "glClearTexImage", 13, -1 }, 1305af69d88dSmrg { "glClearTexSubImage", 13, -1 }, 1306af69d88dSmrg 130701e04c3fSmrg /* GL_ARB_clip_control */ 130801e04c3fSmrg { "glClipControl", 45, -1 }, 130901e04c3fSmrg 131001e04c3fSmrg /* GL_ARB_compute_shader */ 131101e04c3fSmrg { "glDispatchCompute", 43, -1 }, 131201e04c3fSmrg { "glDispatchComputeIndirect", 43, -1 }, 131301e04c3fSmrg 131401e04c3fSmrg /* GL_ARB_compute_variable_group_size */ 131501e04c3fSmrg { "glDispatchComputeGroupSizeARB", 43, -1 }, 131601e04c3fSmrg 131701e04c3fSmrg /* GL_EXT_polygon_offset_clamp */ 131801e04c3fSmrg { "glPolygonOffsetClampEXT", 11, -1 }, 131901e04c3fSmrg 132001e04c3fSmrg /* GL_ARB_get_texture_sub_image */ 132101e04c3fSmrg { "glGetTextureSubImage", 20, -1 }, 132201e04c3fSmrg { "glGetCompressedTextureSubImage", 20, -1 }, 132301e04c3fSmrg 132401e04c3fSmrg /* GL_GREMEDY_string_marker */ 132501e04c3fSmrg { "glStringMarkerGREMEDY", 15, -1 }, 132601e04c3fSmrg 132701e04c3fSmrg /* GL_EXT_window_rectangles */ 132801e04c3fSmrg { "glWindowRectanglesEXT", 30, -1 }, 132901e04c3fSmrg 133001e04c3fSmrg /* GL_KHR_blend_equation_advanced */ 133101e04c3fSmrg { "glBlendBarrierKHR", 20, -1 }, 133201e04c3fSmrg 133301e04c3fSmrg /* GL_ARB_sparse_buffer */ 133401e04c3fSmrg { "glBufferPageCommitmentARB", 43, -1 }, 133501e04c3fSmrg { "glNamedBufferPageCommitmentARB", 43, -1 }, 13367ec681f3Smrg { "glNamedBufferPageCommitmentEXT", 43, -1 }, 133701e04c3fSmrg 133801e04c3fSmrg /* GL_ARB_bindless_texture */ 133901e04c3fSmrg { "glGetTextureHandleARB", 40, -1 }, 134001e04c3fSmrg { "glGetTextureSamplerHandleARB", 40, -1 }, 134101e04c3fSmrg { "glMakeTextureHandleResidentARB", 40, -1 }, 134201e04c3fSmrg { "glMakeTextureHandleNonResidentARB", 40, -1 }, 134301e04c3fSmrg { "glIsTextureHandleResidentARB", 40, -1 }, 134401e04c3fSmrg { "glGetImageHandleARB", 40, -1 }, 134501e04c3fSmrg { "glMakeImageHandleResidentARB", 40, -1 }, 134601e04c3fSmrg { "glMakeImageHandleNonResidentARB", 40, -1 }, 134701e04c3fSmrg { "glIsImageHandleResidentARB", 40, -1 }, 134801e04c3fSmrg { "glUniformHandleui64ARB", 40, -1 }, 134901e04c3fSmrg { "glUniformHandleui64vARB", 40, -1 }, 135001e04c3fSmrg { "glProgramUniformHandleui64ARB", 40, -1 }, 135101e04c3fSmrg { "glProgramUniformHandleui64vARB", 40, -1 }, 135201e04c3fSmrg { "glVertexAttribL1ui64ARB", 40, -1 }, 135301e04c3fSmrg { "glVertexAttribL1ui64vARB", 40, -1 }, 135401e04c3fSmrg { "glGetVertexAttribLui64vARB", 40, -1 }, 135501e04c3fSmrg 135601e04c3fSmrg /* GL_EXT_external_objects */ 135701e04c3fSmrg { "glGetUnsignedBytevEXT", 45, -1 }, 135801e04c3fSmrg { "glGetUnsignedBytei_vEXT", 45, -1 }, 135901e04c3fSmrg { "glDeleteMemoryObjectsEXT", 45, -1 }, 136001e04c3fSmrg { "glIsMemoryObjectEXT", 45, -1 }, 136101e04c3fSmrg { "glCreateMemoryObjectsEXT", 45, -1 }, 136201e04c3fSmrg { "glMemoryObjectParameterivEXT", 45, -1 }, 136301e04c3fSmrg { "glGetMemoryObjectParameterivEXT", 45, -1 }, 136401e04c3fSmrg { "glTexStorageMem2DEXT", 45, -1 }, 136501e04c3fSmrg { "glTexStorageMem2DMultisampleEXT", 45, -1 }, 136601e04c3fSmrg { "glTexStorageMem3DEXT", 45, -1 }, 136701e04c3fSmrg { "glTexStorageMem3DMultisampleEXT", 45, -1 }, 136801e04c3fSmrg { "glBufferStorageMemEXT", 45, -1 }, 136901e04c3fSmrg { "glTextureStorageMem2DEXT", 45, -1 }, 137001e04c3fSmrg { "glTextureStorageMem2DMultisampleEXT", 45, -1 }, 137101e04c3fSmrg { "glTextureStorageMem3DEXT", 45, -1 }, 137201e04c3fSmrg { "glTextureStorageMem3DMultisampleEXT", 45, -1 }, 137301e04c3fSmrg { "glNamedBufferStorageMemEXT", 45, -1 }, 137401e04c3fSmrg { "glTexStorageMem1DEXT", 45, -1 }, 137501e04c3fSmrg { "glTextureStorageMem1DEXT", 45, -1 }, 137601e04c3fSmrg { "glGenSemaphoresEXT", 45, -1 }, 137701e04c3fSmrg { "glDeleteSemaphoresEXT", 45, -1 }, 137801e04c3fSmrg { "glIsSemaphoreEXT", 45, -1 }, 137901e04c3fSmrg { "glSemaphoreParameterui64vEXT", 45, -1 }, 138001e04c3fSmrg { "glGetSemaphoreParameterui64vEXT", 45, -1 }, 138101e04c3fSmrg { "glWaitSemaphoreEXT", 45, -1 }, 138201e04c3fSmrg { "glSignalSemaphoreEXT", 45, -1 }, 138301e04c3fSmrg 138401e04c3fSmrg /* GL_EXT_external_objects_fd */ 138501e04c3fSmrg { "glImportMemoryFdEXT", 45, -1 }, 138601e04c3fSmrg { "glImportSemaphoreFdEXT", 45, -1 }, 138701e04c3fSmrg 138801e04c3fSmrg /* GL_ARB_gl_spirv */ 138901e04c3fSmrg { "glSpecializeShaderARB", 45, -1 }, 139001e04c3fSmrg 139101e04c3fSmrg /* GL_EXT_shader_framebuffer_fetch_non_coherent */ 139201e04c3fSmrg { "glFramebufferFetchBarrierEXT", 20, -1 }, 139301e04c3fSmrg 139401e04c3fSmrg /* GL_NV_conservative_raster */ 139501e04c3fSmrg { "glSubpixelPrecisionBiasNV", 10, -1 }, 139601e04c3fSmrg 139701e04c3fSmrg /* GL_NV_conservative_raster_dilate */ 139801e04c3fSmrg { "glConservativeRasterParameterfNV", 10, -1 }, 139901e04c3fSmrg 140001e04c3fSmrg /* GL_NV_conservative_raster_pre_snap_triangles */ 140101e04c3fSmrg { "glConservativeRasterParameteriNV", 10, -1 }, 140201e04c3fSmrg 140301e04c3fSmrg /* GL_ARB_sample_locations */ 140401e04c3fSmrg { "glFramebufferSampleLocationsfvARB", 30, -1 }, 140501e04c3fSmrg { "glNamedFramebufferSampleLocationsfvARB", 30, -1 }, 140601e04c3fSmrg { "glEvaluateDepthValuesARB", 30, -1 }, 140701e04c3fSmrg 140801e04c3fSmrg /* GL_ARB_indirect_parameters */ 140901e04c3fSmrg { "glMultiDrawArraysIndirectCountARB", 11, -1 }, 141001e04c3fSmrg { "glMultiDrawElementsIndirectCountARB", 11, -1 }, 141101e04c3fSmrg 141201e04c3fSmrg /* GL_AMD_framebuffer_multisample_advanced */ 141301e04c3fSmrg { "glRenderbufferStorageMultisampleAdvancedAMD", 11, -1 }, 141401e04c3fSmrg { "glNamedRenderbufferStorageMultisampleAdvancedAMD", 11, -1 }, 141501e04c3fSmrg 1416b9abf16eSmaya { "glMaxShaderCompilerThreadsKHR", 11, -1 }, 1417b9abf16eSmaya 14187ec681f3Smrg /* GL_EXT_shader_image_load_store */ 14197ec681f3Smrg { "glBindImageTextureEXT", 30, -1 }, 14207ec681f3Smrg 14217ec681f3Smrg /* GL_MESA_framebuffer_flip_y */ 14227ec681f3Smrg { "glFramebufferParameteriMESA", 43, -1 }, 14237ec681f3Smrg { "glGetFramebufferParameterivMESA", 43, -1 }, 14247ec681f3Smrg 14257ec681f3Smrg /* GL_ARB_gpu_shader_int64 */ 14267ec681f3Smrg { "glUniform1i64ARB", 40, -1 }, 14277ec681f3Smrg { "glUniform2i64ARB", 40, -1 }, 14287ec681f3Smrg { "glUniform3i64ARB", 40, -1 }, 14297ec681f3Smrg { "glUniform4i64ARB", 40, -1 }, 14307ec681f3Smrg { "glUniform1ui64ARB", 40, -1 }, 14317ec681f3Smrg { "glUniform2ui64ARB", 40, -1 }, 14327ec681f3Smrg { "glUniform3ui64ARB", 40, -1 }, 14337ec681f3Smrg { "glUniform4ui64ARB", 40, -1 }, 14347ec681f3Smrg { "glUniform1i64vARB", 40, -1 }, 14357ec681f3Smrg { "glUniform2i64vARB", 40, -1 }, 14367ec681f3Smrg { "glUniform3i64vARB", 40, -1 }, 14377ec681f3Smrg { "glUniform4i64vARB", 40, -1 }, 14387ec681f3Smrg { "glUniform1ui64vARB", 40, -1 }, 14397ec681f3Smrg { "glUniform2ui64vARB", 40, -1 }, 14407ec681f3Smrg { "glUniform3ui64vARB", 40, -1 }, 14417ec681f3Smrg { "glUniform4ui64vARB", 40, -1 }, 14427ec681f3Smrg { "glGetUniformi64vARB", 40, -1 }, 14437ec681f3Smrg { "glGetUniformui64vARB", 40, -1 }, 14447ec681f3Smrg { "glGetnUniformi64vARB", 40, -1 }, 14457ec681f3Smrg { "glGetnUniformui64vARB", 40, -1 }, 14467ec681f3Smrg { "glProgramUniform1i64ARB", 40, -1 }, 14477ec681f3Smrg { "glProgramUniform2i64ARB", 40, -1 }, 14487ec681f3Smrg { "glProgramUniform3i64ARB", 40, -1 }, 14497ec681f3Smrg { "glProgramUniform4i64ARB", 40, -1 }, 14507ec681f3Smrg { "glProgramUniform1ui64ARB", 40, -1 }, 14517ec681f3Smrg { "glProgramUniform2ui64ARB", 40, -1 }, 14527ec681f3Smrg { "glProgramUniform3ui64ARB", 40, -1 }, 14537ec681f3Smrg { "glProgramUniform4ui64ARB", 40, -1 }, 14547ec681f3Smrg { "glProgramUniform1i64vARB", 40, -1 }, 14557ec681f3Smrg { "glProgramUniform2i64vARB", 40, -1 }, 14567ec681f3Smrg { "glProgramUniform3i64vARB", 40, -1 }, 14577ec681f3Smrg { "glProgramUniform4i64vARB", 40, -1 }, 14587ec681f3Smrg { "glProgramUniform1ui64vARB", 40, -1 }, 14597ec681f3Smrg { "glProgramUniform2ui64vARB", 40, -1 }, 14607ec681f3Smrg { "glProgramUniform3ui64vARB", 40, -1 }, 14617ec681f3Smrg { "glProgramUniform4ui64vARB", 40, -1 }, 14627ec681f3Smrg 14637ec681f3Smrg /* GL_NV_viewport_swizzle */ 14647ec681f3Smrg { "glViewportSwizzleNV", 11, -1 }, 14657ec681f3Smrg 14667ec681f3Smrg /* ARB_ES3_2_compatibility */ 14677ec681f3Smrg { "glPrimitiveBoundingBoxARB", 45, -1 }, 14687ec681f3Smrg 14697ec681f3Smrg { "glInternalBufferSubDataCopyMESA", 11, -1 }, 14707ec681f3Smrg { "glInternalSetError", 20, -1 }, 14717ec681f3Smrg 147201e04c3fSmrg { NULL, 0, -1 } 147301e04c3fSmrg}; 147401e04c3fSmrg 147501e04c3fSmrgconst struct function gl_compatibility_functions_possible[] = { 147601e04c3fSmrg { "glNewList", 10, _gloffset_NewList }, 147701e04c3fSmrg { "glEndList", 10, _gloffset_EndList }, 147801e04c3fSmrg { "glCallList", 10, _gloffset_CallList }, 147901e04c3fSmrg { "glCallLists", 10, _gloffset_CallLists }, 148001e04c3fSmrg { "glDeleteLists", 10, _gloffset_DeleteLists }, 148101e04c3fSmrg { "glGenLists", 10, _gloffset_GenLists }, 148201e04c3fSmrg { "glListBase", 10, _gloffset_ListBase }, 148301e04c3fSmrg { "glBegin", 10, _gloffset_Begin }, 148401e04c3fSmrg { "glBitmap", 10, _gloffset_Bitmap }, 148501e04c3fSmrg { "glColor3b", 10, _gloffset_Color3b }, 148601e04c3fSmrg { "glColor3bv", 10, _gloffset_Color3bv }, 148701e04c3fSmrg { "glColor3d", 10, _gloffset_Color3d }, 148801e04c3fSmrg { "glColor3dv", 10, _gloffset_Color3dv }, 148901e04c3fSmrg { "glColor3f", 10, _gloffset_Color3f }, 149001e04c3fSmrg { "glColor3fv", 10, _gloffset_Color3fv }, 149101e04c3fSmrg { "glColor3i", 10, _gloffset_Color3i }, 149201e04c3fSmrg { "glColor3iv", 10, _gloffset_Color3iv }, 149301e04c3fSmrg { "glColor3s", 10, _gloffset_Color3s }, 149401e04c3fSmrg { "glColor3sv", 10, _gloffset_Color3sv }, 149501e04c3fSmrg { "glColor3ub", 10, _gloffset_Color3ub }, 149601e04c3fSmrg { "glColor3ubv", 10, _gloffset_Color3ubv }, 149701e04c3fSmrg { "glColor3ui", 10, _gloffset_Color3ui }, 149801e04c3fSmrg { "glColor3uiv", 10, _gloffset_Color3uiv }, 149901e04c3fSmrg { "glColor3us", 10, _gloffset_Color3us }, 150001e04c3fSmrg { "glColor3usv", 10, _gloffset_Color3usv }, 150101e04c3fSmrg { "glColor4b", 10, _gloffset_Color4b }, 150201e04c3fSmrg { "glColor4bv", 10, _gloffset_Color4bv }, 150301e04c3fSmrg { "glColor4d", 10, _gloffset_Color4d }, 150401e04c3fSmrg { "glColor4dv", 10, _gloffset_Color4dv }, 150501e04c3fSmrg { "glColor4f", 10, _gloffset_Color4f }, 150601e04c3fSmrg { "glColor4fv", 10, _gloffset_Color4fv }, 150701e04c3fSmrg { "glColor4i", 10, _gloffset_Color4i }, 150801e04c3fSmrg { "glColor4iv", 10, _gloffset_Color4iv }, 150901e04c3fSmrg { "glColor4s", 10, _gloffset_Color4s }, 151001e04c3fSmrg { "glColor4sv", 10, _gloffset_Color4sv }, 151101e04c3fSmrg { "glColor4ub", 10, _gloffset_Color4ub }, 151201e04c3fSmrg { "glColor4ubv", 10, _gloffset_Color4ubv }, 151301e04c3fSmrg { "glColor4ui", 10, _gloffset_Color4ui }, 151401e04c3fSmrg { "glColor4uiv", 10, _gloffset_Color4uiv }, 151501e04c3fSmrg { "glColor4us", 10, _gloffset_Color4us }, 151601e04c3fSmrg { "glColor4usv", 10, _gloffset_Color4usv }, 151701e04c3fSmrg { "glEdgeFlag", 10, _gloffset_EdgeFlag }, 151801e04c3fSmrg { "glEdgeFlagv", 10, _gloffset_EdgeFlagv }, 151901e04c3fSmrg { "glEnd", 10, _gloffset_End }, 152001e04c3fSmrg { "glIndexd", 10, _gloffset_Indexd }, 152101e04c3fSmrg { "glIndexdv", 10, _gloffset_Indexdv }, 152201e04c3fSmrg { "glIndexf", 10, _gloffset_Indexf }, 152301e04c3fSmrg { "glIndexfv", 10, _gloffset_Indexfv }, 152401e04c3fSmrg { "glIndexi", 10, _gloffset_Indexi }, 152501e04c3fSmrg { "glIndexiv", 10, _gloffset_Indexiv }, 152601e04c3fSmrg { "glIndexs", 10, _gloffset_Indexs }, 152701e04c3fSmrg { "glIndexsv", 10, _gloffset_Indexsv }, 152801e04c3fSmrg { "glNormal3b", 10, _gloffset_Normal3b }, 152901e04c3fSmrg { "glNormal3bv", 10, _gloffset_Normal3bv }, 153001e04c3fSmrg { "glNormal3d", 10, _gloffset_Normal3d }, 153101e04c3fSmrg { "glNormal3dv", 10, _gloffset_Normal3dv }, 153201e04c3fSmrg { "glNormal3f", 10, _gloffset_Normal3f }, 153301e04c3fSmrg { "glNormal3fv", 10, _gloffset_Normal3fv }, 153401e04c3fSmrg { "glNormal3i", 10, _gloffset_Normal3i }, 153501e04c3fSmrg { "glNormal3iv", 10, _gloffset_Normal3iv }, 153601e04c3fSmrg { "glNormal3s", 10, _gloffset_Normal3s }, 153701e04c3fSmrg { "glNormal3sv", 10, _gloffset_Normal3sv }, 153801e04c3fSmrg { "glRasterPos2d", 10, _gloffset_RasterPos2d }, 153901e04c3fSmrg { "glRasterPos2dv", 10, _gloffset_RasterPos2dv }, 154001e04c3fSmrg { "glRasterPos2f", 10, _gloffset_RasterPos2f }, 154101e04c3fSmrg { "glRasterPos2fv", 10, _gloffset_RasterPos2fv }, 154201e04c3fSmrg { "glRasterPos2i", 10, _gloffset_RasterPos2i }, 154301e04c3fSmrg { "glRasterPos2iv", 10, _gloffset_RasterPos2iv }, 154401e04c3fSmrg { "glRasterPos2s", 10, _gloffset_RasterPos2s }, 154501e04c3fSmrg { "glRasterPos2sv", 10, _gloffset_RasterPos2sv }, 154601e04c3fSmrg { "glRasterPos3d", 10, _gloffset_RasterPos3d }, 154701e04c3fSmrg { "glRasterPos3dv", 10, _gloffset_RasterPos3dv }, 154801e04c3fSmrg { "glRasterPos3f", 10, _gloffset_RasterPos3f }, 154901e04c3fSmrg { "glRasterPos3fv", 10, _gloffset_RasterPos3fv }, 155001e04c3fSmrg { "glRasterPos3i", 10, _gloffset_RasterPos3i }, 155101e04c3fSmrg { "glRasterPos3iv", 10, _gloffset_RasterPos3iv }, 155201e04c3fSmrg { "glRasterPos3s", 10, _gloffset_RasterPos3s }, 155301e04c3fSmrg { "glRasterPos3sv", 10, _gloffset_RasterPos3sv }, 155401e04c3fSmrg { "glRasterPos4d", 10, _gloffset_RasterPos4d }, 155501e04c3fSmrg { "glRasterPos4dv", 10, _gloffset_RasterPos4dv }, 155601e04c3fSmrg { "glRasterPos4f", 10, _gloffset_RasterPos4f }, 155701e04c3fSmrg { "glRasterPos4fv", 10, _gloffset_RasterPos4fv }, 155801e04c3fSmrg { "glRasterPos4i", 10, _gloffset_RasterPos4i }, 155901e04c3fSmrg { "glRasterPos4iv", 10, _gloffset_RasterPos4iv }, 156001e04c3fSmrg { "glRasterPos4s", 10, _gloffset_RasterPos4s }, 156101e04c3fSmrg { "glRasterPos4sv", 10, _gloffset_RasterPos4sv }, 156201e04c3fSmrg { "glRectd", 10, _gloffset_Rectd }, 156301e04c3fSmrg { "glRectdv", 10, _gloffset_Rectdv }, 156401e04c3fSmrg { "glRectf", 10, _gloffset_Rectf }, 156501e04c3fSmrg { "glRectfv", 10, _gloffset_Rectfv }, 156601e04c3fSmrg { "glRecti", 10, _gloffset_Recti }, 156701e04c3fSmrg { "glRectiv", 10, _gloffset_Rectiv }, 156801e04c3fSmrg { "glRects", 10, _gloffset_Rects }, 156901e04c3fSmrg { "glRectsv", 10, _gloffset_Rectsv }, 157001e04c3fSmrg { "glTexCoord1d", 10, _gloffset_TexCoord1d }, 157101e04c3fSmrg { "glTexCoord1dv", 10, _gloffset_TexCoord1dv }, 157201e04c3fSmrg { "glTexCoord1f", 10, _gloffset_TexCoord1f }, 157301e04c3fSmrg { "glTexCoord1fv", 10, _gloffset_TexCoord1fv }, 157401e04c3fSmrg { "glTexCoord1i", 10, _gloffset_TexCoord1i }, 157501e04c3fSmrg { "glTexCoord1iv", 10, _gloffset_TexCoord1iv }, 157601e04c3fSmrg { "glTexCoord1s", 10, _gloffset_TexCoord1s }, 157701e04c3fSmrg { "glTexCoord1sv", 10, _gloffset_TexCoord1sv }, 157801e04c3fSmrg { "glTexCoord2d", 10, _gloffset_TexCoord2d }, 157901e04c3fSmrg { "glTexCoord2dv", 10, _gloffset_TexCoord2dv }, 158001e04c3fSmrg { "glTexCoord2f", 10, _gloffset_TexCoord2f }, 158101e04c3fSmrg { "glTexCoord2fv", 10, _gloffset_TexCoord2fv }, 158201e04c3fSmrg { "glTexCoord2i", 10, _gloffset_TexCoord2i }, 158301e04c3fSmrg { "glTexCoord2iv", 10, _gloffset_TexCoord2iv }, 158401e04c3fSmrg { "glTexCoord2s", 10, _gloffset_TexCoord2s }, 158501e04c3fSmrg { "glTexCoord2sv", 10, _gloffset_TexCoord2sv }, 158601e04c3fSmrg { "glTexCoord3d", 10, _gloffset_TexCoord3d }, 158701e04c3fSmrg { "glTexCoord3dv", 10, _gloffset_TexCoord3dv }, 158801e04c3fSmrg { "glTexCoord3f", 10, _gloffset_TexCoord3f }, 158901e04c3fSmrg { "glTexCoord3fv", 10, _gloffset_TexCoord3fv }, 159001e04c3fSmrg { "glTexCoord3i", 10, _gloffset_TexCoord3i }, 159101e04c3fSmrg { "glTexCoord3iv", 10, _gloffset_TexCoord3iv }, 159201e04c3fSmrg { "glTexCoord3s", 10, _gloffset_TexCoord3s }, 159301e04c3fSmrg { "glTexCoord3sv", 10, _gloffset_TexCoord3sv }, 159401e04c3fSmrg { "glTexCoord4d", 10, _gloffset_TexCoord4d }, 159501e04c3fSmrg { "glTexCoord4dv", 10, _gloffset_TexCoord4dv }, 159601e04c3fSmrg { "glTexCoord4f", 10, _gloffset_TexCoord4f }, 159701e04c3fSmrg { "glTexCoord4fv", 10, _gloffset_TexCoord4fv }, 159801e04c3fSmrg { "glTexCoord4i", 10, _gloffset_TexCoord4i }, 159901e04c3fSmrg { "glTexCoord4iv", 10, _gloffset_TexCoord4iv }, 160001e04c3fSmrg { "glTexCoord4s", 10, _gloffset_TexCoord4s }, 160101e04c3fSmrg { "glTexCoord4sv", 10, _gloffset_TexCoord4sv }, 160201e04c3fSmrg { "glVertex2d", 10, _gloffset_Vertex2d }, 160301e04c3fSmrg { "glVertex2dv", 10, _gloffset_Vertex2dv }, 160401e04c3fSmrg { "glVertex2f", 10, _gloffset_Vertex2f }, 160501e04c3fSmrg { "glVertex2fv", 10, _gloffset_Vertex2fv }, 160601e04c3fSmrg { "glVertex2i", 10, _gloffset_Vertex2i }, 160701e04c3fSmrg { "glVertex2iv", 10, _gloffset_Vertex2iv }, 160801e04c3fSmrg { "glVertex2s", 10, _gloffset_Vertex2s }, 160901e04c3fSmrg { "glVertex2sv", 10, _gloffset_Vertex2sv }, 161001e04c3fSmrg { "glVertex3d", 10, _gloffset_Vertex3d }, 161101e04c3fSmrg { "glVertex3dv", 10, _gloffset_Vertex3dv }, 161201e04c3fSmrg { "glVertex3f", 10, _gloffset_Vertex3f }, 161301e04c3fSmrg { "glVertex3fv", 10, _gloffset_Vertex3fv }, 161401e04c3fSmrg { "glVertex3i", 10, _gloffset_Vertex3i }, 161501e04c3fSmrg { "glVertex3iv", 10, _gloffset_Vertex3iv }, 161601e04c3fSmrg { "glVertex3s", 10, _gloffset_Vertex3s }, 161701e04c3fSmrg { "glVertex3sv", 10, _gloffset_Vertex3sv }, 161801e04c3fSmrg { "glVertex4d", 10, _gloffset_Vertex4d }, 161901e04c3fSmrg { "glVertex4dv", 10, _gloffset_Vertex4dv }, 162001e04c3fSmrg { "glVertex4f", 10, _gloffset_Vertex4f }, 162101e04c3fSmrg { "glVertex4fv", 10, _gloffset_Vertex4fv }, 162201e04c3fSmrg { "glVertex4i", 10, _gloffset_Vertex4i }, 162301e04c3fSmrg { "glVertex4iv", 10, _gloffset_Vertex4iv }, 162401e04c3fSmrg { "glVertex4s", 10, _gloffset_Vertex4s }, 162501e04c3fSmrg { "glVertex4sv", 10, _gloffset_Vertex4sv }, 162601e04c3fSmrg { "glClipPlane", 10, _gloffset_ClipPlane }, 162701e04c3fSmrg { "glColorMaterial", 10, _gloffset_ColorMaterial }, 162801e04c3fSmrg { "glFogf", 10, _gloffset_Fogf }, 162901e04c3fSmrg { "glFogfv", 10, _gloffset_Fogfv }, 163001e04c3fSmrg { "glFogi", 10, _gloffset_Fogi }, 163101e04c3fSmrg { "glFogiv", 10, _gloffset_Fogiv }, 163201e04c3fSmrg { "glLightf", 10, _gloffset_Lightf }, 163301e04c3fSmrg { "glLightfv", 10, _gloffset_Lightfv }, 163401e04c3fSmrg { "glLighti", 10, _gloffset_Lighti }, 163501e04c3fSmrg { "glLightiv", 10, _gloffset_Lightiv }, 163601e04c3fSmrg { "glLightModelf", 10, _gloffset_LightModelf }, 163701e04c3fSmrg { "glLightModelfv", 10, _gloffset_LightModelfv }, 163801e04c3fSmrg { "glLightModeli", 10, _gloffset_LightModeli }, 163901e04c3fSmrg { "glLightModeliv", 10, _gloffset_LightModeliv }, 164001e04c3fSmrg { "glLineStipple", 10, _gloffset_LineStipple }, 164101e04c3fSmrg { "glMaterialf", 10, _gloffset_Materialf }, 164201e04c3fSmrg { "glMaterialfv", 10, _gloffset_Materialfv }, 164301e04c3fSmrg { "glMateriali", 10, _gloffset_Materiali }, 164401e04c3fSmrg { "glMaterialiv", 10, _gloffset_Materialiv }, 164501e04c3fSmrg { "glPolygonStipple", 10, _gloffset_PolygonStipple }, 164601e04c3fSmrg { "glShadeModel", 10, _gloffset_ShadeModel }, 164701e04c3fSmrg { "glTexEnvf", 10, _gloffset_TexEnvf }, 164801e04c3fSmrg { "glTexEnvfv", 10, _gloffset_TexEnvfv }, 164901e04c3fSmrg { "glTexEnvi", 10, _gloffset_TexEnvi }, 165001e04c3fSmrg { "glTexEnviv", 10, _gloffset_TexEnviv }, 165101e04c3fSmrg { "glTexGend", 10, _gloffset_TexGend }, 165201e04c3fSmrg { "glTexGendv", 10, _gloffset_TexGendv }, 165301e04c3fSmrg { "glTexGenf", 10, _gloffset_TexGenf }, 165401e04c3fSmrg { "glTexGenfv", 10, _gloffset_TexGenfv }, 165501e04c3fSmrg { "glTexGeni", 10, _gloffset_TexGeni }, 165601e04c3fSmrg { "glTexGeniv", 10, _gloffset_TexGeniv }, 165701e04c3fSmrg { "glFeedbackBuffer", 10, _gloffset_FeedbackBuffer }, 165801e04c3fSmrg { "glSelectBuffer", 10, _gloffset_SelectBuffer }, 165901e04c3fSmrg { "glRenderMode", 10, _gloffset_RenderMode }, 166001e04c3fSmrg { "glInitNames", 10, _gloffset_InitNames }, 166101e04c3fSmrg { "glLoadName", 10, _gloffset_LoadName }, 166201e04c3fSmrg { "glPassThrough", 10, _gloffset_PassThrough }, 166301e04c3fSmrg { "glPopName", 10, _gloffset_PopName }, 166401e04c3fSmrg { "glPushName", 10, _gloffset_PushName }, 166501e04c3fSmrg { "glClearAccum", 10, _gloffset_ClearAccum }, 166601e04c3fSmrg { "glClearIndex", 10, _gloffset_ClearIndex }, 166701e04c3fSmrg { "glIndexMask", 10, _gloffset_IndexMask }, 166801e04c3fSmrg { "glAccum", 10, _gloffset_Accum }, 166901e04c3fSmrg { "glPopAttrib", 10, _gloffset_PopAttrib }, 167001e04c3fSmrg { "glPushAttrib", 10, _gloffset_PushAttrib }, 167101e04c3fSmrg { "glMap1d", 10, _gloffset_Map1d }, 167201e04c3fSmrg { "glMap1f", 10, _gloffset_Map1f }, 167301e04c3fSmrg { "glMap2d", 10, _gloffset_Map2d }, 167401e04c3fSmrg { "glMap2f", 10, _gloffset_Map2f }, 167501e04c3fSmrg { "glMapGrid1d", 10, _gloffset_MapGrid1d }, 167601e04c3fSmrg { "glMapGrid1f", 10, _gloffset_MapGrid1f }, 167701e04c3fSmrg { "glMapGrid2d", 10, _gloffset_MapGrid2d }, 167801e04c3fSmrg { "glMapGrid2f", 10, _gloffset_MapGrid2f }, 167901e04c3fSmrg { "glEvalCoord1d", 10, _gloffset_EvalCoord1d }, 168001e04c3fSmrg { "glEvalCoord1dv", 10, _gloffset_EvalCoord1dv }, 168101e04c3fSmrg { "glEvalCoord1f", 10, _gloffset_EvalCoord1f }, 168201e04c3fSmrg { "glEvalCoord1fv", 10, _gloffset_EvalCoord1fv }, 168301e04c3fSmrg { "glEvalCoord2d", 10, _gloffset_EvalCoord2d }, 168401e04c3fSmrg { "glEvalCoord2dv", 10, _gloffset_EvalCoord2dv }, 168501e04c3fSmrg { "glEvalCoord2f", 10, _gloffset_EvalCoord2f }, 168601e04c3fSmrg { "glEvalCoord2fv", 10, _gloffset_EvalCoord2fv }, 168701e04c3fSmrg { "glEvalMesh1", 10, _gloffset_EvalMesh1 }, 168801e04c3fSmrg { "glEvalPoint1", 10, _gloffset_EvalPoint1 }, 168901e04c3fSmrg { "glEvalMesh2", 10, _gloffset_EvalMesh2 }, 169001e04c3fSmrg { "glEvalPoint2", 10, _gloffset_EvalPoint2 }, 169101e04c3fSmrg { "glAlphaFunc", 10, _gloffset_AlphaFunc }, 169201e04c3fSmrg { "glPixelZoom", 10, _gloffset_PixelZoom }, 169301e04c3fSmrg { "glPixelTransferf", 10, _gloffset_PixelTransferf }, 169401e04c3fSmrg { "glPixelTransferi", 10, _gloffset_PixelTransferi }, 169501e04c3fSmrg { "glPixelMapfv", 10, _gloffset_PixelMapfv }, 169601e04c3fSmrg { "glPixelMapuiv", 10, _gloffset_PixelMapuiv }, 169701e04c3fSmrg { "glPixelMapusv", 10, _gloffset_PixelMapusv }, 169801e04c3fSmrg { "glCopyPixels", 10, _gloffset_CopyPixels }, 169901e04c3fSmrg { "glDrawPixels", 10, _gloffset_DrawPixels }, 170001e04c3fSmrg { "glGetClipPlane", 10, _gloffset_GetClipPlane }, 170101e04c3fSmrg { "glGetLightfv", 10, _gloffset_GetLightfv }, 170201e04c3fSmrg { "glGetLightiv", 10, _gloffset_GetLightiv }, 170301e04c3fSmrg { "glGetMapdv", 10, _gloffset_GetMapdv }, 170401e04c3fSmrg { "glGetMapfv", 10, _gloffset_GetMapfv }, 170501e04c3fSmrg { "glGetMapiv", 10, _gloffset_GetMapiv }, 170601e04c3fSmrg { "glGetMaterialfv", 10, _gloffset_GetMaterialfv }, 170701e04c3fSmrg { "glGetMaterialiv", 10, _gloffset_GetMaterialiv }, 170801e04c3fSmrg { "glGetPixelMapfv", 10, _gloffset_GetPixelMapfv }, 170901e04c3fSmrg { "glGetPixelMapuiv", 10, _gloffset_GetPixelMapuiv }, 171001e04c3fSmrg { "glGetPixelMapusv", 10, _gloffset_GetPixelMapusv }, 171101e04c3fSmrg { "glGetPolygonStipple", 10, _gloffset_GetPolygonStipple }, 171201e04c3fSmrg { "glGetTexEnvfv", 10, _gloffset_GetTexEnvfv }, 171301e04c3fSmrg { "glGetTexEnviv", 10, _gloffset_GetTexEnviv }, 171401e04c3fSmrg { "glGetTexGendv", 10, _gloffset_GetTexGendv }, 171501e04c3fSmrg { "glGetTexGenfv", 10, _gloffset_GetTexGenfv }, 171601e04c3fSmrg { "glGetTexGeniv", 10, _gloffset_GetTexGeniv }, 171701e04c3fSmrg { "glIsList", 10, _gloffset_IsList }, 171801e04c3fSmrg { "glFrustum", 10, _gloffset_Frustum }, 171901e04c3fSmrg { "glLoadIdentity", 10, _gloffset_LoadIdentity }, 172001e04c3fSmrg { "glLoadMatrixf", 10, _gloffset_LoadMatrixf }, 172101e04c3fSmrg { "glLoadMatrixd", 10, _gloffset_LoadMatrixd }, 172201e04c3fSmrg { "glMatrixMode", 10, _gloffset_MatrixMode }, 172301e04c3fSmrg { "glMultMatrixf", 10, _gloffset_MultMatrixf }, 172401e04c3fSmrg { "glMultMatrixd", 10, _gloffset_MultMatrixd }, 172501e04c3fSmrg { "glOrtho", 10, _gloffset_Ortho }, 172601e04c3fSmrg { "glPopMatrix", 10, _gloffset_PopMatrix }, 172701e04c3fSmrg { "glPushMatrix", 10, _gloffset_PushMatrix }, 172801e04c3fSmrg { "glRotated", 10, _gloffset_Rotated }, 172901e04c3fSmrg { "glRotatef", 10, _gloffset_Rotatef }, 173001e04c3fSmrg { "glScaled", 10, _gloffset_Scaled }, 173101e04c3fSmrg { "glScalef", 10, _gloffset_Scalef }, 173201e04c3fSmrg { "glTranslated", 10, _gloffset_Translated }, 173301e04c3fSmrg { "glTranslatef", 10, _gloffset_Translatef }, 173401e04c3fSmrg { "glArrayElement", 10, _gloffset_ArrayElement }, 173501e04c3fSmrg { "glColorPointer", 10, _gloffset_ColorPointer }, 173601e04c3fSmrg { "glDisableClientState", 10, _gloffset_DisableClientState }, 173701e04c3fSmrg { "glEdgeFlagPointer", 10, _gloffset_EdgeFlagPointer }, 173801e04c3fSmrg { "glEnableClientState", 10, _gloffset_EnableClientState }, 173901e04c3fSmrg { "glIndexPointer", 10, _gloffset_IndexPointer }, 174001e04c3fSmrg { "glInterleavedArrays", 10, _gloffset_InterleavedArrays }, 174101e04c3fSmrg { "glNormalPointer", 10, _gloffset_NormalPointer }, 174201e04c3fSmrg { "glTexCoordPointer", 10, _gloffset_TexCoordPointer }, 174301e04c3fSmrg { "glVertexPointer", 10, _gloffset_VertexPointer }, 174401e04c3fSmrg { "glAreTexturesResident", 10, _gloffset_AreTexturesResident }, 174501e04c3fSmrg { "glPrioritizeTextures", 10, _gloffset_PrioritizeTextures }, 174601e04c3fSmrg { "glIndexub", 10, _gloffset_Indexub }, 174701e04c3fSmrg { "glIndexubv", 10, _gloffset_Indexubv }, 174801e04c3fSmrg { "glPopClientAttrib", 10, _gloffset_PopClientAttrib }, 174901e04c3fSmrg { "glPushClientAttrib", 10, _gloffset_PushClientAttrib }, 175001e04c3fSmrg { "glColorTable", 10, _gloffset_ColorTable }, 175101e04c3fSmrg { "glColorTableParameterfv", 10, _gloffset_ColorTableParameterfv }, 175201e04c3fSmrg { "glColorTableParameteriv", 10, _gloffset_ColorTableParameteriv }, 175301e04c3fSmrg { "glCopyColorTable", 10, _gloffset_CopyColorTable }, 175401e04c3fSmrg { "glGetColorTable", 10, _gloffset_GetColorTable }, 175501e04c3fSmrg { "glGetColorTableParameterfv", 10, _gloffset_GetColorTableParameterfv }, 175601e04c3fSmrg { "glGetColorTableParameteriv", 10, _gloffset_GetColorTableParameteriv }, 175701e04c3fSmrg { "glColorSubTable", 10, _gloffset_ColorSubTable }, 175801e04c3fSmrg { "glCopyColorSubTable", 10, _gloffset_CopyColorSubTable }, 175901e04c3fSmrg { "glConvolutionFilter1D", 10, _gloffset_ConvolutionFilter1D }, 176001e04c3fSmrg { "glConvolutionFilter2D", 10, _gloffset_ConvolutionFilter2D }, 176101e04c3fSmrg { "glConvolutionParameterf", 10, _gloffset_ConvolutionParameterf }, 176201e04c3fSmrg { "glConvolutionParameterfv", 10, _gloffset_ConvolutionParameterfv }, 176301e04c3fSmrg { "glConvolutionParameteri", 10, _gloffset_ConvolutionParameteri }, 176401e04c3fSmrg { "glConvolutionParameteriv", 10, _gloffset_ConvolutionParameteriv }, 176501e04c3fSmrg { "glCopyConvolutionFilter1D", 10, _gloffset_CopyConvolutionFilter1D }, 176601e04c3fSmrg { "glCopyConvolutionFilter2D", 10, _gloffset_CopyConvolutionFilter2D }, 176701e04c3fSmrg { "glGetConvolutionFilter", 10, _gloffset_GetConvolutionFilter }, 176801e04c3fSmrg { "glGetConvolutionParameterfv", 10, _gloffset_GetConvolutionParameterfv }, 176901e04c3fSmrg { "glGetConvolutionParameteriv", 10, _gloffset_GetConvolutionParameteriv }, 177001e04c3fSmrg { "glGetSeparableFilter", 10, _gloffset_GetSeparableFilter }, 177101e04c3fSmrg { "glSeparableFilter2D", 10, _gloffset_SeparableFilter2D }, 177201e04c3fSmrg { "glGetHistogram", 10, _gloffset_GetHistogram }, 177301e04c3fSmrg { "glGetHistogramParameterfv", 10, _gloffset_GetHistogramParameterfv }, 177401e04c3fSmrg { "glGetHistogramParameteriv", 10, _gloffset_GetHistogramParameteriv }, 177501e04c3fSmrg { "glGetMinmax", 10, _gloffset_GetMinmax }, 177601e04c3fSmrg { "glGetMinmaxParameterfv", 10, _gloffset_GetMinmaxParameterfv }, 177701e04c3fSmrg { "glGetMinmaxParameteriv", 10, _gloffset_GetMinmaxParameteriv }, 177801e04c3fSmrg { "glHistogram", 10, _gloffset_Histogram }, 177901e04c3fSmrg { "glMinmax", 10, _gloffset_Minmax }, 178001e04c3fSmrg { "glResetHistogram", 10, _gloffset_ResetHistogram }, 178101e04c3fSmrg { "glResetMinmax", 10, _gloffset_ResetMinmax }, 178201e04c3fSmrg { "glClientActiveTexture", 10, _gloffset_ClientActiveTexture }, 178301e04c3fSmrg { "glMultiTexCoord1d", 10, _gloffset_MultiTexCoord1d }, 178401e04c3fSmrg { "glMultiTexCoord1dv", 10, _gloffset_MultiTexCoord1dv }, 178501e04c3fSmrg { "glMultiTexCoord1f", 10, _gloffset_MultiTexCoord1fARB }, 178601e04c3fSmrg { "glMultiTexCoord1fv", 10, _gloffset_MultiTexCoord1fvARB }, 178701e04c3fSmrg { "glMultiTexCoord1i", 10, _gloffset_MultiTexCoord1i }, 178801e04c3fSmrg { "glMultiTexCoord1iv", 10, _gloffset_MultiTexCoord1iv }, 178901e04c3fSmrg { "glMultiTexCoord1s", 10, _gloffset_MultiTexCoord1s }, 179001e04c3fSmrg { "glMultiTexCoord1sv", 10, _gloffset_MultiTexCoord1sv }, 179101e04c3fSmrg { "glMultiTexCoord2d", 10, _gloffset_MultiTexCoord2d }, 179201e04c3fSmrg { "glMultiTexCoord2dv", 10, _gloffset_MultiTexCoord2dv }, 179301e04c3fSmrg { "glMultiTexCoord2f", 10, _gloffset_MultiTexCoord2fARB }, 179401e04c3fSmrg { "glMultiTexCoord2fv", 10, _gloffset_MultiTexCoord2fvARB }, 179501e04c3fSmrg { "glMultiTexCoord2i", 10, _gloffset_MultiTexCoord2i }, 179601e04c3fSmrg { "glMultiTexCoord2iv", 10, _gloffset_MultiTexCoord2iv }, 179701e04c3fSmrg { "glMultiTexCoord2s", 10, _gloffset_MultiTexCoord2s }, 179801e04c3fSmrg { "glMultiTexCoord2sv", 10, _gloffset_MultiTexCoord2sv }, 179901e04c3fSmrg { "glMultiTexCoord3d", 10, _gloffset_MultiTexCoord3d }, 180001e04c3fSmrg { "glMultiTexCoord3dv", 10, _gloffset_MultiTexCoord3dv }, 180101e04c3fSmrg { "glMultiTexCoord3f", 10, _gloffset_MultiTexCoord3fARB }, 180201e04c3fSmrg { "glMultiTexCoord3fv", 10, _gloffset_MultiTexCoord3fvARB }, 180301e04c3fSmrg { "glMultiTexCoord3i", 10, _gloffset_MultiTexCoord3i }, 180401e04c3fSmrg { "glMultiTexCoord3iv", 10, _gloffset_MultiTexCoord3iv }, 180501e04c3fSmrg { "glMultiTexCoord3s", 10, _gloffset_MultiTexCoord3s }, 180601e04c3fSmrg { "glMultiTexCoord3sv", 10, _gloffset_MultiTexCoord3sv }, 180701e04c3fSmrg { "glMultiTexCoord4d", 10, _gloffset_MultiTexCoord4d }, 180801e04c3fSmrg { "glMultiTexCoord4dv", 10, _gloffset_MultiTexCoord4dv }, 180901e04c3fSmrg { "glMultiTexCoord4f", 10, _gloffset_MultiTexCoord4fARB }, 181001e04c3fSmrg { "glMultiTexCoord4fv", 10, _gloffset_MultiTexCoord4fvARB }, 181101e04c3fSmrg { "glMultiTexCoord4i", 10, _gloffset_MultiTexCoord4i }, 181201e04c3fSmrg { "glMultiTexCoord4iv", 10, _gloffset_MultiTexCoord4iv }, 181301e04c3fSmrg { "glMultiTexCoord4s", 10, _gloffset_MultiTexCoord4s }, 181401e04c3fSmrg { "glMultiTexCoord4sv", 10, _gloffset_MultiTexCoord4sv }, 181501e04c3fSmrg { "glLoadTransposeMatrixf", 10, -1 }, 181601e04c3fSmrg { "glLoadTransposeMatrixd", 10, -1 }, 181701e04c3fSmrg { "glMultTransposeMatrixf", 10, -1 }, 181801e04c3fSmrg { "glMultTransposeMatrixd", 10, -1 }, 181901e04c3fSmrg { "glFogCoordf", 10, -1 }, 182001e04c3fSmrg { "glFogCoordfv", 10, -1 }, 182101e04c3fSmrg { "glFogCoordd", 10, -1 }, 182201e04c3fSmrg { "glFogCoorddv", 10, -1 }, 182301e04c3fSmrg { "glFogCoordPointer", 10, -1 }, 182401e04c3fSmrg { "glSecondaryColor3b", 10, -1 }, 182501e04c3fSmrg { "glSecondaryColor3bv", 10, -1 }, 182601e04c3fSmrg { "glSecondaryColor3d", 10, -1 }, 182701e04c3fSmrg { "glSecondaryColor3dv", 10, -1 }, 182801e04c3fSmrg { "glSecondaryColor3f", 10, -1 }, 182901e04c3fSmrg { "glSecondaryColor3fv", 10, -1 }, 183001e04c3fSmrg { "glSecondaryColor3i", 10, -1 }, 183101e04c3fSmrg { "glSecondaryColor3iv", 10, -1 }, 183201e04c3fSmrg { "glSecondaryColor3s", 10, -1 }, 183301e04c3fSmrg { "glSecondaryColor3sv", 10, -1 }, 183401e04c3fSmrg { "glSecondaryColor3ub", 10, -1 }, 183501e04c3fSmrg { "glSecondaryColor3ubv", 10, -1 }, 183601e04c3fSmrg { "glSecondaryColor3ui", 10, -1 }, 183701e04c3fSmrg { "glSecondaryColor3uiv", 10, -1 }, 183801e04c3fSmrg { "glSecondaryColor3us", 10, -1 }, 183901e04c3fSmrg { "glSecondaryColor3usv", 10, -1 }, 184001e04c3fSmrg { "glSecondaryColorPointer", 10, -1 }, 184101e04c3fSmrg { "glWindowPos2d", 10, -1 }, 184201e04c3fSmrg { "glWindowPos2dv", 10, -1 }, 184301e04c3fSmrg { "glWindowPos2f", 10, -1 }, 184401e04c3fSmrg { "glWindowPos2fv", 10, -1 }, 184501e04c3fSmrg { "glWindowPos2i", 10, -1 }, 184601e04c3fSmrg { "glWindowPos2iv", 10, -1 }, 184701e04c3fSmrg { "glWindowPos2s", 10, -1 }, 184801e04c3fSmrg { "glWindowPos2sv", 10, -1 }, 184901e04c3fSmrg { "glWindowPos3d", 10, -1 }, 185001e04c3fSmrg { "glWindowPos3dv", 10, -1 }, 185101e04c3fSmrg { "glWindowPos3f", 10, -1 }, 185201e04c3fSmrg { "glWindowPos3fv", 10, -1 }, 185301e04c3fSmrg { "glWindowPos3i", 10, -1 }, 185401e04c3fSmrg { "glWindowPos3iv", 10, -1 }, 185501e04c3fSmrg { "glWindowPos3s", 10, -1 }, 185601e04c3fSmrg { "glWindowPos3sv", 10, -1 }, 185701e04c3fSmrg { "glProgramStringARB", 10, -1 }, 185801e04c3fSmrg { "glProgramEnvParameter4dARB", 10, -1 }, 185901e04c3fSmrg { "glProgramEnvParameter4dvARB", 10, -1 }, 186001e04c3fSmrg { "glProgramEnvParameter4fARB", 10, -1 }, 186101e04c3fSmrg { "glProgramEnvParameter4fvARB", 10, -1 }, 186201e04c3fSmrg { "glProgramLocalParameter4dARB", 10, -1 }, 186301e04c3fSmrg { "glProgramLocalParameter4dvARB", 10, -1 }, 186401e04c3fSmrg { "glProgramLocalParameter4fARB", 10, -1 }, 186501e04c3fSmrg { "glProgramLocalParameter4fvARB", 10, -1 }, 186601e04c3fSmrg { "glGetProgramEnvParameterdvARB", 10, -1 }, 186701e04c3fSmrg { "glGetProgramEnvParameterfvARB", 10, -1 }, 186801e04c3fSmrg { "glGetProgramLocalParameterdvARB", 10, -1 }, 186901e04c3fSmrg { "glGetProgramLocalParameterfvARB", 10, -1 }, 187001e04c3fSmrg { "glGetProgramivARB", 10, -1 }, 187101e04c3fSmrg { "glGetProgramStringARB", 10, -1 }, 187201e04c3fSmrg { "glColorPointerEXT", 10, -1 }, 187301e04c3fSmrg { "glEdgeFlagPointerEXT", 10, -1 }, 187401e04c3fSmrg { "glIndexPointerEXT", 10, -1 }, 187501e04c3fSmrg { "glNormalPointerEXT", 10, -1 }, 187601e04c3fSmrg { "glTexCoordPointerEXT", 10, -1 }, 187701e04c3fSmrg { "glVertexPointerEXT", 10, -1 }, 187801e04c3fSmrg { "glLockArraysEXT", 10, -1 }, 187901e04c3fSmrg { "glUnlockArraysEXT", 10, -1 }, 188001e04c3fSmrg { "glWindowPos4dMESA", 10, -1 }, 188101e04c3fSmrg { "glWindowPos4dvMESA", 10, -1 }, 188201e04c3fSmrg { "glWindowPos4fMESA", 10, -1 }, 188301e04c3fSmrg { "glWindowPos4fvMESA", 10, -1 }, 188401e04c3fSmrg { "glWindowPos4iMESA", 10, -1 }, 188501e04c3fSmrg { "glWindowPos4ivMESA", 10, -1 }, 188601e04c3fSmrg { "glWindowPos4sMESA", 10, -1 }, 188701e04c3fSmrg { "glWindowPos4svMESA", 10, -1 }, 188801e04c3fSmrg { "glBindProgramNV", 10, -1 }, 188901e04c3fSmrg { "glDeleteProgramsNV", 10, -1 }, 189001e04c3fSmrg { "glGenProgramsNV", 10, -1 }, 189101e04c3fSmrg { "glIsProgramNV", 10, -1 }, 189201e04c3fSmrg { "glVertexAttrib1sNV", 10, -1 }, 189301e04c3fSmrg { "glVertexAttrib1svNV", 10, -1 }, 189401e04c3fSmrg { "glVertexAttrib2sNV", 10, -1 }, 189501e04c3fSmrg { "glVertexAttrib2svNV", 10, -1 }, 189601e04c3fSmrg { "glVertexAttrib3sNV", 10, -1 }, 189701e04c3fSmrg { "glVertexAttrib3svNV", 10, -1 }, 189801e04c3fSmrg { "glVertexAttrib4sNV", 10, -1 }, 189901e04c3fSmrg { "glVertexAttrib4svNV", 10, -1 }, 190001e04c3fSmrg { "glVertexAttrib1fNV", 10, -1 }, 190101e04c3fSmrg { "glVertexAttrib1fvNV", 10, -1 }, 190201e04c3fSmrg { "glVertexAttrib2fNV", 10, -1 }, 190301e04c3fSmrg { "glVertexAttrib2fvNV", 10, -1 }, 190401e04c3fSmrg { "glVertexAttrib3fNV", 10, -1 }, 190501e04c3fSmrg { "glVertexAttrib3fvNV", 10, -1 }, 190601e04c3fSmrg { "glVertexAttrib4fNV", 10, -1 }, 190701e04c3fSmrg { "glVertexAttrib4fvNV", 10, -1 }, 190801e04c3fSmrg { "glVertexAttrib1dNV", 10, -1 }, 190901e04c3fSmrg { "glVertexAttrib1dvNV", 10, -1 }, 191001e04c3fSmrg { "glVertexAttrib2dNV", 10, -1 }, 191101e04c3fSmrg { "glVertexAttrib2dvNV", 10, -1 }, 191201e04c3fSmrg { "glVertexAttrib3dNV", 10, -1 }, 191301e04c3fSmrg { "glVertexAttrib3dvNV", 10, -1 }, 191401e04c3fSmrg { "glVertexAttrib4dNV", 10, -1 }, 191501e04c3fSmrg { "glVertexAttrib4dvNV", 10, -1 }, 191601e04c3fSmrg { "glVertexAttrib4ubNV", 10, -1 }, 191701e04c3fSmrg { "glVertexAttrib4ubvNV", 10, -1 }, 191801e04c3fSmrg { "glVertexAttribs1svNV", 10, -1 }, 191901e04c3fSmrg { "glVertexAttribs2svNV", 10, -1 }, 192001e04c3fSmrg { "glVertexAttribs3svNV", 10, -1 }, 192101e04c3fSmrg { "glVertexAttribs4svNV", 10, -1 }, 192201e04c3fSmrg { "glVertexAttribs1fvNV", 10, -1 }, 192301e04c3fSmrg { "glVertexAttribs2fvNV", 10, -1 }, 192401e04c3fSmrg { "glVertexAttribs3fvNV", 10, -1 }, 192501e04c3fSmrg { "glVertexAttribs4fvNV", 10, -1 }, 192601e04c3fSmrg { "glVertexAttribs1dvNV", 10, -1 }, 192701e04c3fSmrg { "glVertexAttribs2dvNV", 10, -1 }, 192801e04c3fSmrg { "glVertexAttribs3dvNV", 10, -1 }, 192901e04c3fSmrg { "glVertexAttribs4dvNV", 10, -1 }, 193001e04c3fSmrg { "glVertexAttribs4ubvNV", 10, -1 }, 193101e04c3fSmrg { "glGenFragmentShadersATI", 10, -1 }, 193201e04c3fSmrg { "glBindFragmentShaderATI", 10, -1 }, 193301e04c3fSmrg { "glDeleteFragmentShaderATI", 10, -1 }, 193401e04c3fSmrg { "glBeginFragmentShaderATI", 10, -1 }, 193501e04c3fSmrg { "glEndFragmentShaderATI", 10, -1 }, 193601e04c3fSmrg { "glPassTexCoordATI", 10, -1 }, 193701e04c3fSmrg { "glSampleMapATI", 10, -1 }, 193801e04c3fSmrg { "glColorFragmentOp1ATI", 10, -1 }, 193901e04c3fSmrg { "glColorFragmentOp2ATI", 10, -1 }, 194001e04c3fSmrg { "glColorFragmentOp3ATI", 10, -1 }, 194101e04c3fSmrg { "glAlphaFragmentOp1ATI", 10, -1 }, 194201e04c3fSmrg { "glAlphaFragmentOp2ATI", 10, -1 }, 194301e04c3fSmrg { "glAlphaFragmentOp3ATI", 10, -1 }, 194401e04c3fSmrg { "glSetFragmentShaderConstantATI", 10, -1 }, 194501e04c3fSmrg { "glActiveStencilFaceEXT", 10, -1 }, 194601e04c3fSmrg { "glStencilFuncSeparateATI", 10, -1 }, 194701e04c3fSmrg { "glProgramEnvParameters4fvEXT", 10, -1 }, 194801e04c3fSmrg { "glProgramLocalParameters4fvEXT", 10, -1 }, 194901e04c3fSmrg { "glPrimitiveRestartNV", 10, -1 }, 195001e04c3fSmrg 19517ec681f3Smrg /* GL_NV_half_float */ 19527ec681f3Smrg { "glVertex2hNV", 13, -1 }, 19537ec681f3Smrg { "glVertex2hvNV", 13, -1 }, 19547ec681f3Smrg { "glVertex3hNV", 13, -1 }, 19557ec681f3Smrg { "glVertex3hvNV", 13, -1 }, 19567ec681f3Smrg { "glVertex4hNV", 13, -1 }, 19577ec681f3Smrg { "glVertex4hvNV", 13, -1 }, 19587ec681f3Smrg { "glNormal3hNV", 13, -1 }, 19597ec681f3Smrg { "glNormal3hvNV", 13, -1 }, 19607ec681f3Smrg { "glColor3hNV", 13, -1 }, 19617ec681f3Smrg { "glColor3hvNV", 13, -1 }, 19627ec681f3Smrg { "glColor4hNV", 13, -1 }, 19637ec681f3Smrg { "glColor4hvNV", 13, -1 }, 19647ec681f3Smrg { "glTexCoord1hNV", 13, -1 }, 19657ec681f3Smrg { "glTexCoord1hvNV", 13, -1 }, 19667ec681f3Smrg { "glTexCoord2hNV", 13, -1 }, 19677ec681f3Smrg { "glTexCoord2hvNV", 13, -1 }, 19687ec681f3Smrg { "glTexCoord3hNV", 13, -1 }, 19697ec681f3Smrg { "glTexCoord3hvNV", 13, -1 }, 19707ec681f3Smrg { "glTexCoord4hNV", 13, -1 }, 19717ec681f3Smrg { "glTexCoord4hvNV", 13, -1 }, 19727ec681f3Smrg { "glMultiTexCoord1hNV", 13, -1 }, 19737ec681f3Smrg { "glMultiTexCoord1hvNV", 13, -1 }, 19747ec681f3Smrg { "glMultiTexCoord2hNV", 13, -1 }, 19757ec681f3Smrg { "glMultiTexCoord2hvNV", 13, -1 }, 19767ec681f3Smrg { "glMultiTexCoord3hNV", 13, -1 }, 19777ec681f3Smrg { "glMultiTexCoord3hvNV", 13, -1 }, 19787ec681f3Smrg { "glMultiTexCoord4hNV", 13, -1 }, 19797ec681f3Smrg { "glMultiTexCoord4hvNV", 13, -1 }, 19807ec681f3Smrg { "glFogCoordhNV", 13, -1 }, 19817ec681f3Smrg { "glFogCoordhvNV", 13, -1 }, 19827ec681f3Smrg { "glSecondaryColor3hNV", 13, -1 }, 19837ec681f3Smrg { "glSecondaryColor3hvNV", 13, -1 }, 19847ec681f3Smrg { "glVertexAttrib1hNV", 13, -1 }, 19857ec681f3Smrg { "glVertexAttrib1hvNV", 13, -1 }, 19867ec681f3Smrg { "glVertexAttrib2hNV", 13, -1 }, 19877ec681f3Smrg { "glVertexAttrib2hvNV", 13, -1 }, 19887ec681f3Smrg { "glVertexAttrib3hNV", 13, -1 }, 19897ec681f3Smrg { "glVertexAttrib3hvNV", 13, -1 }, 19907ec681f3Smrg { "glVertexAttrib4hNV", 13, -1 }, 19917ec681f3Smrg { "glVertexAttrib4hvNV", 13, -1 }, 19927ec681f3Smrg { "glVertexAttribs1hvNV", 13, -1 }, 19937ec681f3Smrg { "glVertexAttribs2hvNV", 13, -1 }, 19947ec681f3Smrg { "glVertexAttribs3hvNV", 13, -1 }, 19957ec681f3Smrg { "glVertexAttribs4hvNV", 13, -1 }, 19967ec681f3Smrg 199701e04c3fSmrg { NULL, 0, -1 } 199801e04c3fSmrg}; 199901e04c3fSmrg 200001e04c3fSmrgconst struct function gl_core_functions_possible[] = { 200101e04c3fSmrg /* GL_ARB_gl_spirv */ 200201e04c3fSmrg { "glSpecializeShaderARB", 45, -1 }, 200301e04c3fSmrg 2004af69d88dSmrg { NULL, 0, -1 } 2005af69d88dSmrg}; 2006af69d88dSmrg 2007af69d88dSmrgconst struct function gles11_functions_possible[] = { 2008af69d88dSmrg { "glActiveTexture", 11, _gloffset_ActiveTexture }, 2009af69d88dSmrg { "glAlphaFunc", 11, _gloffset_AlphaFunc }, 2010af69d88dSmrg { "glAlphaFuncx", 11, -1 }, 2011af69d88dSmrg { "glBindBuffer", 11, -1 }, 2012af69d88dSmrg { "glBindFramebufferOES", 11, -1 }, 2013af69d88dSmrg { "glBindRenderbufferOES", 11, -1 }, 2014af69d88dSmrg { "glBindTexture", 11, _gloffset_BindTexture }, 2015af69d88dSmrg { "glBlendEquationOES", 11, _gloffset_BlendEquation }, 2016af69d88dSmrg { "glBlendEquationSeparateOES", 11, -1 }, 2017af69d88dSmrg { "glBlendFunc", 11, _gloffset_BlendFunc }, 2018af69d88dSmrg { "glBlendFuncSeparateOES", 11, -1 }, 2019af69d88dSmrg { "glBufferData", 11, -1 }, 2020af69d88dSmrg { "glBufferSubData", 11, -1 }, 2021af69d88dSmrg { "glCheckFramebufferStatusOES", 11, -1 }, 2022af69d88dSmrg { "glClear", 11, _gloffset_Clear }, 2023af69d88dSmrg { "glClearColor", 11, _gloffset_ClearColor }, 2024af69d88dSmrg { "glClearColorx", 11, -1 }, 2025af69d88dSmrg { "glClearDepthf", 11, -1 }, 2026af69d88dSmrg { "glClearDepthx", 11, -1 }, 2027af69d88dSmrg { "glClearStencil", 11, _gloffset_ClearStencil }, 2028af69d88dSmrg { "glClientActiveTexture", 11, _gloffset_ClientActiveTexture }, 2029af69d88dSmrg { "glClipPlanef", 11, -1 }, 2030af69d88dSmrg { "glClipPlanex", 11, -1 }, 2031af69d88dSmrg { "glColor4f", 11, _gloffset_Color4f }, 2032af69d88dSmrg { "glColor4ub", 11, _gloffset_Color4ub }, 2033af69d88dSmrg { "glColor4x", 11, -1 }, 2034af69d88dSmrg { "glColorMask", 11, _gloffset_ColorMask }, 2035af69d88dSmrg { "glColorPointer", 11, _gloffset_ColorPointer }, 2036af69d88dSmrg { "glCompressedTexImage2D", 11, -1 }, 2037af69d88dSmrg { "glCompressedTexSubImage2D", 11, -1 }, 2038af69d88dSmrg { "glCopyTexImage2D", 11, _gloffset_CopyTexImage2D }, 2039af69d88dSmrg { "glCopyTexSubImage2D", 11, _gloffset_CopyTexSubImage2D }, 2040af69d88dSmrg { "glCullFace", 11, _gloffset_CullFace }, 2041af69d88dSmrg { "glDeleteBuffers", 11, -1 }, 2042af69d88dSmrg { "glDeleteFramebuffersOES", 11, -1 }, 2043af69d88dSmrg { "glDeleteRenderbuffersOES", 11, -1 }, 2044af69d88dSmrg { "glDeleteTextures", 11, _gloffset_DeleteTextures }, 2045af69d88dSmrg { "glDepthFunc", 11, _gloffset_DepthFunc }, 2046af69d88dSmrg { "glDepthMask", 11, _gloffset_DepthMask }, 2047af69d88dSmrg { "glDepthRangef", 11, -1 }, 2048af69d88dSmrg { "glDepthRangex", 11, -1 }, 2049af69d88dSmrg { "glDisable", 11, _gloffset_Disable }, 2050af69d88dSmrg { "glDiscardFramebufferEXT", 11, -1 }, 2051af69d88dSmrg { "glDisableClientState", 11, _gloffset_DisableClientState }, 2052af69d88dSmrg { "glDrawArrays", 11, _gloffset_DrawArrays }, 2053af69d88dSmrg { "glDrawElements", 11, _gloffset_DrawElements }, 2054af69d88dSmrg { "glDrawTexfOES", 11, -1 }, 2055af69d88dSmrg { "glDrawTexfvOES", 11, -1 }, 2056af69d88dSmrg { "glDrawTexiOES", 11, -1 }, 2057af69d88dSmrg { "glDrawTexivOES", 11, -1 }, 2058af69d88dSmrg { "glDrawTexsOES", 11, -1 }, 2059af69d88dSmrg { "glDrawTexsvOES", 11, -1 }, 2060af69d88dSmrg { "glDrawTexxOES", 11, -1 }, 2061af69d88dSmrg { "glDrawTexxvOES", 11, -1 }, 2062af69d88dSmrg { "glEGLImageTargetRenderbufferStorageOES", 11, -1 }, 2063af69d88dSmrg { "glEGLImageTargetTexture2DOES", 11, -1 }, 2064af69d88dSmrg { "glEnable", 11, _gloffset_Enable }, 2065af69d88dSmrg { "glEnableClientState", 11, _gloffset_EnableClientState }, 2066af69d88dSmrg { "glFinish", 11, _gloffset_Finish }, 2067af69d88dSmrg { "glFlush", 11, _gloffset_Flush }, 2068af69d88dSmrg { "glFlushMappedBufferRangeEXT", 11, -1 }, 2069af69d88dSmrg { "glFogf", 11, _gloffset_Fogf }, 2070af69d88dSmrg { "glFogfv", 11, _gloffset_Fogfv }, 2071af69d88dSmrg { "glFogx", 11, -1 }, 2072af69d88dSmrg { "glFogxv", 11, -1 }, 2073af69d88dSmrg { "glFramebufferRenderbufferOES", 11, -1 }, 2074af69d88dSmrg { "glFramebufferTexture2DOES", 11, -1 }, 2075af69d88dSmrg { "glFrontFace", 11, _gloffset_FrontFace }, 2076af69d88dSmrg { "glFrustumf", 11, -1 }, 2077af69d88dSmrg { "glFrustumx", 11, -1 }, 2078af69d88dSmrg { "glGenBuffers", 11, -1 }, 2079af69d88dSmrg { "glGenFramebuffersOES", 11, -1 }, 2080af69d88dSmrg { "glGenRenderbuffersOES", 11, -1 }, 2081af69d88dSmrg { "glGenTextures", 11, _gloffset_GenTextures }, 2082af69d88dSmrg { "glGenerateMipmapOES", 11, -1 }, 2083af69d88dSmrg { "glGetBooleanv", 11, _gloffset_GetBooleanv }, 2084af69d88dSmrg { "glGetBufferParameteriv", 11, -1 }, 2085af69d88dSmrg { "glGetBufferPointervOES", 11, -1 }, 2086af69d88dSmrg { "glGetClipPlanef", 11, -1 }, 2087af69d88dSmrg { "glGetClipPlanex", 11, -1 }, 2088af69d88dSmrg { "glGetError", 11, _gloffset_GetError }, 2089af69d88dSmrg { "glGetFixedv", 11, -1 }, 2090af69d88dSmrg { "glGetFloatv", 11, _gloffset_GetFloatv }, 2091af69d88dSmrg { "glGetFramebufferAttachmentParameterivOES", 11, -1 }, 2092af69d88dSmrg { "glGetIntegerv", 11, _gloffset_GetIntegerv }, 2093af69d88dSmrg { "glGetLightfv", 11, _gloffset_GetLightfv }, 2094af69d88dSmrg { "glGetLightxv", 11, -1 }, 2095af69d88dSmrg { "glGetMaterialfv", 11, _gloffset_GetMaterialfv }, 2096af69d88dSmrg { "glGetMaterialxv", 11, -1 }, 209701e04c3fSmrg // We check for the aliased -KHR version in GLES 1.1 209801e04c3fSmrg// { "glGetPointerv", 11, _gloffset_GetPointerv }, 2099af69d88dSmrg { "glGetRenderbufferParameterivOES", 11, -1 }, 2100af69d88dSmrg { "glGetString", 11, _gloffset_GetString }, 2101af69d88dSmrg { "glGetTexEnvfv", 11, _gloffset_GetTexEnvfv }, 2102af69d88dSmrg { "glGetTexEnviv", 11, _gloffset_GetTexEnviv }, 2103af69d88dSmrg { "glGetTexEnvxv", 11, -1 }, 2104af69d88dSmrg { "glGetTexGenfvOES", 11, _gloffset_GetTexGenfv }, 2105af69d88dSmrg { "glGetTexGenivOES", 11, _gloffset_GetTexGeniv }, 2106af69d88dSmrg { "glGetTexGenxvOES", 11, -1 }, 2107af69d88dSmrg { "glGetTexParameterfv", 11, _gloffset_GetTexParameterfv }, 2108af69d88dSmrg { "glGetTexParameteriv", 11, _gloffset_GetTexParameteriv }, 2109af69d88dSmrg { "glGetTexParameterxv", 11, -1 }, 2110af69d88dSmrg { "glHint", 11, _gloffset_Hint }, 2111af69d88dSmrg { "glIsBuffer", 11, -1 }, 2112af69d88dSmrg { "glIsEnabled", 11, _gloffset_IsEnabled }, 2113af69d88dSmrg { "glIsFramebufferOES", 11, -1 }, 2114af69d88dSmrg { "glIsRenderbufferOES", 11, -1 }, 2115af69d88dSmrg { "glIsTexture", 11, _gloffset_IsTexture }, 2116af69d88dSmrg { "glLightModelf", 11, _gloffset_LightModelf }, 2117af69d88dSmrg { "glLightModelfv", 11, _gloffset_LightModelfv }, 2118af69d88dSmrg { "glLightModelx", 11, -1 }, 2119af69d88dSmrg { "glLightModelxv", 11, -1 }, 2120af69d88dSmrg { "glLightf", 11, _gloffset_Lightf }, 2121af69d88dSmrg { "glLightfv", 11, _gloffset_Lightfv }, 2122af69d88dSmrg { "glLightx", 11, -1 }, 2123af69d88dSmrg { "glLightxv", 11, -1 }, 2124af69d88dSmrg { "glLineWidth", 11, _gloffset_LineWidth }, 2125af69d88dSmrg { "glLineWidthx", 11, -1 }, 2126af69d88dSmrg { "glLoadIdentity", 11, _gloffset_LoadIdentity }, 2127af69d88dSmrg { "glLoadMatrixf", 11, _gloffset_LoadMatrixf }, 2128af69d88dSmrg { "glLoadMatrixx", 11, -1 }, 2129af69d88dSmrg { "glLogicOp", 11, _gloffset_LogicOp }, 2130af69d88dSmrg { "glMapBufferOES", 11, -1 }, 2131af69d88dSmrg { "glMapBufferRangeEXT", 11, -1 }, 2132af69d88dSmrg { "glMaterialf", 11, _gloffset_Materialf }, 2133af69d88dSmrg { "glMaterialfv", 11, _gloffset_Materialfv }, 2134af69d88dSmrg { "glMaterialx", 11, -1 }, 2135af69d88dSmrg { "glMaterialxv", 11, -1 }, 2136af69d88dSmrg { "glMatrixMode", 11, _gloffset_MatrixMode }, 2137af69d88dSmrg { "glMultMatrixf", 11, _gloffset_MultMatrixf }, 2138af69d88dSmrg { "glMultMatrixx", 11, -1 }, 2139af69d88dSmrg { "glMultiDrawArraysEXT", 11, -1 }, 2140af69d88dSmrg { "glMultiDrawElementsEXT", 11, -1 }, 2141af69d88dSmrg { "glMultiTexCoord4f", 11, _gloffset_MultiTexCoord4fARB }, 2142af69d88dSmrg { "glMultiTexCoord4x", 11, -1 }, 2143af69d88dSmrg { "glNormal3f", 11, _gloffset_Normal3f }, 2144af69d88dSmrg { "glNormal3x", 11, -1 }, 2145af69d88dSmrg { "glNormalPointer", 11, _gloffset_NormalPointer }, 2146af69d88dSmrg { "glOrthof", 11, -1 }, 2147af69d88dSmrg { "glOrthox", 11, -1 }, 2148af69d88dSmrg { "glPixelStorei", 11, _gloffset_PixelStorei }, 2149af69d88dSmrg { "glPointParameterf", 11, -1 }, 2150af69d88dSmrg { "glPointParameterfv", 11, -1 }, 2151af69d88dSmrg { "glPointParameterx", 11, -1 }, 2152af69d88dSmrg { "glPointParameterxv", 11, -1 }, 2153af69d88dSmrg { "glPointSize", 11, _gloffset_PointSize }, 2154af69d88dSmrg { "glPointSizePointerOES", 11, -1 }, 2155af69d88dSmrg { "glPointSizex", 11, -1 }, 2156af69d88dSmrg { "glPolygonOffset", 11, _gloffset_PolygonOffset }, 2157af69d88dSmrg { "glPolygonOffsetx", 11, -1 }, 2158af69d88dSmrg { "glPopMatrix", 11, _gloffset_PopMatrix }, 2159af69d88dSmrg { "glPushMatrix", 11, _gloffset_PushMatrix }, 2160af69d88dSmrg { "glQueryMatrixxOES", 11, -1 }, 2161af69d88dSmrg { "glReadPixels", 11, _gloffset_ReadPixels }, 2162af69d88dSmrg { "glRenderbufferStorageOES", 11, -1 }, 2163af69d88dSmrg { "glRotatef", 11, _gloffset_Rotatef }, 2164af69d88dSmrg { "glRotatex", 11, -1 }, 2165af69d88dSmrg { "glSampleCoverage", 11, -1 }, 2166af69d88dSmrg { "glSampleCoveragex", 11, -1 }, 2167af69d88dSmrg { "glScalef", 11, _gloffset_Scalef }, 2168af69d88dSmrg { "glScalex", 11, -1 }, 2169af69d88dSmrg { "glScissor", 11, _gloffset_Scissor }, 2170af69d88dSmrg { "glShadeModel", 11, _gloffset_ShadeModel }, 2171af69d88dSmrg { "glStencilFunc", 11, _gloffset_StencilFunc }, 2172af69d88dSmrg { "glStencilMask", 11, _gloffset_StencilMask }, 2173af69d88dSmrg { "glStencilOp", 11, _gloffset_StencilOp }, 2174af69d88dSmrg { "glTexCoordPointer", 11, _gloffset_TexCoordPointer }, 2175af69d88dSmrg { "glTexEnvf", 11, _gloffset_TexEnvf }, 2176af69d88dSmrg { "glTexEnvfv", 11, _gloffset_TexEnvfv }, 2177af69d88dSmrg { "glTexEnvi", 11, _gloffset_TexEnvi }, 2178af69d88dSmrg { "glTexEnviv", 11, _gloffset_TexEnviv }, 2179af69d88dSmrg { "glTexEnvx", 11, -1 }, 2180af69d88dSmrg { "glTexEnvxv", 11, -1 }, 2181af69d88dSmrg { "glTexGenfOES", 11, _gloffset_TexGenf }, 2182af69d88dSmrg { "glTexGenfvOES", 11, _gloffset_TexGenfv }, 2183af69d88dSmrg { "glTexGeniOES", 11, _gloffset_TexGeni }, 2184af69d88dSmrg { "glTexGenivOES", 11, _gloffset_TexGeniv }, 2185af69d88dSmrg { "glTexGenxOES", 11, -1 }, 2186af69d88dSmrg { "glTexGenxvOES", 11, -1 }, 2187af69d88dSmrg { "glTexImage2D", 11, _gloffset_TexImage2D }, 2188af69d88dSmrg { "glTexParameterf", 11, _gloffset_TexParameterf }, 2189af69d88dSmrg { "glTexParameterfv", 11, _gloffset_TexParameterfv }, 2190af69d88dSmrg { "glTexParameteri", 11, _gloffset_TexParameteri }, 2191af69d88dSmrg { "glTexParameteriv", 11, _gloffset_TexParameteriv }, 2192af69d88dSmrg { "glTexParameterx", 11, -1 }, 2193af69d88dSmrg { "glTexParameterxv", 11, -1 }, 2194af69d88dSmrg { "glTexSubImage2D", 11, _gloffset_TexSubImage2D }, 2195af69d88dSmrg { "glTranslatef", 11, _gloffset_Translatef }, 2196af69d88dSmrg { "glTranslatex", 11, -1 }, 2197af69d88dSmrg { "glUnmapBufferOES", 11, -1 }, 2198af69d88dSmrg { "glVertexPointer", 11, _gloffset_VertexPointer }, 2199af69d88dSmrg { "glViewport", 11, _gloffset_Viewport }, 220001e04c3fSmrg 220101e04c3fSmrg /* GL_KHR_debug */ 220201e04c3fSmrg { "glPushDebugGroupKHR", 11, -1 }, 220301e04c3fSmrg { "glPopDebugGroupKHR", 11, -1 }, 220401e04c3fSmrg { "glDebugMessageCallbackKHR", 11, -1 }, 220501e04c3fSmrg { "glDebugMessageControlKHR", 11, -1 }, 220601e04c3fSmrg { "glDebugMessageInsertKHR", 11, -1 }, 220701e04c3fSmrg { "glGetDebugMessageLogKHR", 11, -1 }, 220801e04c3fSmrg { "glGetObjectLabelKHR", 11, -1 }, 220901e04c3fSmrg { "glGetObjectPtrLabelKHR", 11, -1 }, 221001e04c3fSmrg { "glGetPointervKHR", 11, _gloffset_GetPointerv }, 221101e04c3fSmrg { "glObjectLabelKHR", 11, -1 }, 221201e04c3fSmrg { "glObjectPtrLabelKHR", 11, -1 }, 221301e04c3fSmrg 221401e04c3fSmrg /* GL_EXT_polygon_offset_clamp */ 221501e04c3fSmrg { "glPolygonOffsetClampEXT", 11, -1 }, 221601e04c3fSmrg 221701e04c3fSmrg /* GL_NV_conservative_raster */ 221801e04c3fSmrg { "glSubpixelPrecisionBiasNV", 20, -1 }, 221901e04c3fSmrg 222001e04c3fSmrg /* GL_NV_conservative_raster_dilate */ 222101e04c3fSmrg { "glConservativeRasterParameterfNV", 20, -1 }, 222201e04c3fSmrg 222301e04c3fSmrg /* GL_NV_conservative_raster_pre_snap_triangles */ 222401e04c3fSmrg { "glConservativeRasterParameteriNV", 20, -1 }, 222501e04c3fSmrg 2226af69d88dSmrg { NULL, 0, -1 } 2227af69d88dSmrg}; 2228af69d88dSmrg 2229af69d88dSmrgconst struct function gles2_functions_possible[] = { 2230af69d88dSmrg { "glActiveTexture", 20, _gloffset_ActiveTexture }, 2231af69d88dSmrg { "glAttachShader", 20, -1 }, 2232af69d88dSmrg { "glBindAttribLocation", 20, -1 }, 2233af69d88dSmrg { "glBindBuffer", 20, -1 }, 2234af69d88dSmrg { "glBindFramebuffer", 20, -1 }, 2235af69d88dSmrg { "glBindRenderbuffer", 20, -1 }, 2236af69d88dSmrg { "glBindTexture", 20, _gloffset_BindTexture }, 2237af69d88dSmrg { "glBindVertexArrayOES", 20, -1 }, 2238af69d88dSmrg { "glBlendColor", 20, _gloffset_BlendColor }, 2239af69d88dSmrg { "glBlendEquation", 20, _gloffset_BlendEquation }, 2240af69d88dSmrg { "glBlendEquationSeparate", 20, -1 }, 2241af69d88dSmrg { "glBlendFunc", 20, _gloffset_BlendFunc }, 2242af69d88dSmrg { "glBlendFuncSeparate", 20, -1 }, 2243af69d88dSmrg { "glBufferData", 20, -1 }, 2244af69d88dSmrg { "glBufferSubData", 20, -1 }, 2245af69d88dSmrg { "glCheckFramebufferStatus", 20, -1 }, 2246af69d88dSmrg { "glClear", 20, _gloffset_Clear }, 2247af69d88dSmrg { "glClearColor", 20, _gloffset_ClearColor }, 2248af69d88dSmrg { "glClearDepthf", 20, -1 }, 2249af69d88dSmrg { "glClearStencil", 20, _gloffset_ClearStencil }, 2250af69d88dSmrg { "glColorMask", 20, _gloffset_ColorMask }, 2251af69d88dSmrg { "glCompileShader", 20, -1 }, 2252af69d88dSmrg { "glCompressedTexImage2D", 20, -1 }, 2253af69d88dSmrg { "glCompressedTexImage3DOES", 20, -1 }, 2254af69d88dSmrg { "glCompressedTexSubImage2D", 20, -1 }, 2255af69d88dSmrg { "glCompressedTexSubImage3DOES", 20, -1 }, 2256af69d88dSmrg { "glCopyTexImage2D", 20, _gloffset_CopyTexImage2D }, 2257af69d88dSmrg { "glCopyTexSubImage2D", 20, _gloffset_CopyTexSubImage2D }, 2258af69d88dSmrg { "glCopyTexSubImage3DOES", 20, _gloffset_CopyTexSubImage3D }, 2259af69d88dSmrg { "glCreateProgram", 20, -1 }, 2260af69d88dSmrg { "glCreateShader", 20, -1 }, 2261af69d88dSmrg { "glCullFace", 20, _gloffset_CullFace }, 2262af69d88dSmrg { "glDeleteBuffers", 20, -1 }, 2263af69d88dSmrg { "glDeleteFramebuffers", 20, -1 }, 2264af69d88dSmrg { "glDeleteProgram", 20, -1 }, 2265af69d88dSmrg { "glDeleteRenderbuffers", 20, -1 }, 2266af69d88dSmrg { "glDeleteShader", 20, -1 }, 2267af69d88dSmrg { "glDeleteTextures", 20, _gloffset_DeleteTextures }, 2268af69d88dSmrg { "glDeleteVertexArraysOES", 20, -1 }, 2269af69d88dSmrg { "glDepthFunc", 20, _gloffset_DepthFunc }, 2270af69d88dSmrg { "glDepthMask", 20, _gloffset_DepthMask }, 2271af69d88dSmrg { "glDepthRangef", 20, -1 }, 2272af69d88dSmrg { "glDetachShader", 20, -1 }, 2273af69d88dSmrg { "glDisable", 20, _gloffset_Disable }, 2274af69d88dSmrg { "glDiscardFramebufferEXT", 20, -1 }, 2275af69d88dSmrg { "glDisableVertexAttribArray", 20, -1 }, 2276af69d88dSmrg { "glDrawArrays", 20, _gloffset_DrawArrays }, 2277af69d88dSmrg { "glDrawBuffersNV", 20, -1 }, 2278af69d88dSmrg { "glDrawElements", 20, _gloffset_DrawElements }, 22797ec681f3Smrg { "glDrawElementsBaseVertex", 20, -1 }, 2280af69d88dSmrg { "glEGLImageTargetRenderbufferStorageOES", 20, -1 }, 2281af69d88dSmrg { "glEGLImageTargetTexture2DOES", 20, -1 }, 2282af69d88dSmrg { "glEnable", 20, _gloffset_Enable }, 2283af69d88dSmrg { "glEnableVertexAttribArray", 20, -1 }, 2284af69d88dSmrg { "glFinish", 20, _gloffset_Finish }, 2285af69d88dSmrg { "glFlush", 20, _gloffset_Flush }, 2286af69d88dSmrg { "glFlushMappedBufferRangeEXT", 20, -1 }, 2287af69d88dSmrg { "glFramebufferRenderbuffer", 20, -1 }, 2288af69d88dSmrg { "glFramebufferTexture2D", 20, -1 }, 2289af69d88dSmrg { "glFramebufferTexture3DOES", 20, -1 }, 2290af69d88dSmrg { "glFrontFace", 20, _gloffset_FrontFace }, 2291af69d88dSmrg { "glGenBuffers", 20, -1 }, 2292af69d88dSmrg { "glGenFramebuffers", 20, -1 }, 2293af69d88dSmrg { "glGenRenderbuffers", 20, -1 }, 2294af69d88dSmrg { "glGenTextures", 20, _gloffset_GenTextures }, 2295af69d88dSmrg { "glGenVertexArraysOES", 20, -1 }, 2296af69d88dSmrg { "glGenerateMipmap", 20, -1 }, 2297af69d88dSmrg { "glGetActiveAttrib", 20, -1 }, 2298af69d88dSmrg { "glGetActiveUniform", 20, -1 }, 2299af69d88dSmrg { "glGetAttachedShaders", 20, -1 }, 2300af69d88dSmrg { "glGetAttribLocation", 20, -1 }, 2301af69d88dSmrg { "glGetBooleanv", 20, _gloffset_GetBooleanv }, 2302af69d88dSmrg { "glGetBufferParameteriv", 20, -1 }, 2303af69d88dSmrg { "glGetBufferPointervOES", 20, -1 }, 2304af69d88dSmrg { "glGetError", 20, _gloffset_GetError }, 2305af69d88dSmrg { "glGetFloatv", 20, _gloffset_GetFloatv }, 2306af69d88dSmrg { "glGetFramebufferAttachmentParameteriv", 20, -1 }, 2307af69d88dSmrg { "glGetIntegerv", 20, _gloffset_GetIntegerv }, 2308af69d88dSmrg { "glGetProgramInfoLog", 20, -1 }, 2309af69d88dSmrg { "glGetProgramiv", 20, -1 }, 2310af69d88dSmrg { "glGetRenderbufferParameteriv", 20, -1 }, 2311af69d88dSmrg { "glGetShaderInfoLog", 20, -1 }, 2312af69d88dSmrg { "glGetShaderPrecisionFormat", 20, -1 }, 2313af69d88dSmrg { "glGetShaderSource", 20, -1 }, 2314af69d88dSmrg { "glGetShaderiv", 20, -1 }, 2315af69d88dSmrg { "glGetString", 20, _gloffset_GetString }, 2316af69d88dSmrg { "glGetTexParameterfv", 20, _gloffset_GetTexParameterfv }, 2317af69d88dSmrg { "glGetTexParameteriv", 20, _gloffset_GetTexParameteriv }, 2318af69d88dSmrg { "glGetUniformLocation", 20, -1 }, 2319af69d88dSmrg { "glGetUniformfv", 20, -1 }, 2320af69d88dSmrg { "glGetUniformiv", 20, -1 }, 2321af69d88dSmrg { "glGetVertexAttribPointerv", 20, -1 }, 2322af69d88dSmrg { "glGetVertexAttribfv", 20, -1 }, 2323af69d88dSmrg { "glGetVertexAttribiv", 20, -1 }, 2324af69d88dSmrg { "glHint", 20, _gloffset_Hint }, 2325af69d88dSmrg { "glIsBuffer", 20, -1 }, 2326af69d88dSmrg { "glIsEnabled", 20, _gloffset_IsEnabled }, 2327af69d88dSmrg { "glIsFramebuffer", 20, -1 }, 2328af69d88dSmrg { "glIsProgram", 20, -1 }, 2329af69d88dSmrg { "glIsRenderbuffer", 20, -1 }, 2330af69d88dSmrg { "glIsShader", 20, -1 }, 2331af69d88dSmrg { "glIsTexture", 20, _gloffset_IsTexture }, 2332af69d88dSmrg { "glIsVertexArrayOES", 20, -1 }, 2333af69d88dSmrg { "glLineWidth", 20, _gloffset_LineWidth }, 2334af69d88dSmrg { "glLinkProgram", 20, -1 }, 2335af69d88dSmrg { "glMapBufferOES", 20, -1 }, 2336af69d88dSmrg { "glMapBufferRangeEXT", 20, -1 }, 2337af69d88dSmrg { "glMultiDrawArraysEXT", 20, -1 }, 2338af69d88dSmrg { "glMultiDrawElementsEXT", 20, -1 }, 23397ec681f3Smrg { "glMultiDrawElementsBaseVertex", 20, -1 }, 2340af69d88dSmrg { "glPixelStorei", 20, _gloffset_PixelStorei }, 2341af69d88dSmrg { "glPolygonOffset", 20, _gloffset_PolygonOffset }, 2342af69d88dSmrg { "glReadBufferNV", 20, _gloffset_ReadBuffer }, 2343af69d88dSmrg { "glReadPixels", 20, _gloffset_ReadPixels }, 2344af69d88dSmrg { "glReleaseShaderCompiler", 20, -1 }, 2345af69d88dSmrg { "glRenderbufferStorage", 20, -1 }, 2346af69d88dSmrg { "glSampleCoverage", 20, -1 }, 2347af69d88dSmrg { "glScissor", 20, _gloffset_Scissor }, 2348af69d88dSmrg { "glShaderBinary", 20, -1 }, 2349af69d88dSmrg { "glShaderSource", 20, -1 }, 2350af69d88dSmrg { "glStencilFunc", 20, _gloffset_StencilFunc }, 2351af69d88dSmrg { "glStencilFuncSeparate", 20, -1 }, 2352af69d88dSmrg { "glStencilMask", 20, _gloffset_StencilMask }, 2353af69d88dSmrg { "glStencilMaskSeparate", 20, -1 }, 2354af69d88dSmrg { "glStencilOp", 20, _gloffset_StencilOp }, 2355af69d88dSmrg { "glStencilOpSeparate", 20, -1 }, 2356af69d88dSmrg { "glTexImage2D", 20, _gloffset_TexImage2D }, 2357af69d88dSmrg { "glTexImage3DOES", 20, _gloffset_TexImage3D }, 2358af69d88dSmrg { "glTexParameterf", 20, _gloffset_TexParameterf }, 2359af69d88dSmrg { "glTexParameterfv", 20, _gloffset_TexParameterfv }, 2360af69d88dSmrg { "glTexParameteri", 20, _gloffset_TexParameteri }, 2361af69d88dSmrg { "glTexParameteriv", 20, _gloffset_TexParameteriv }, 2362af69d88dSmrg { "glTexSubImage2D", 20, _gloffset_TexSubImage2D }, 2363af69d88dSmrg { "glTexSubImage3DOES", 20, _gloffset_TexSubImage3D }, 2364af69d88dSmrg { "glUniform1f", 20, -1 }, 2365af69d88dSmrg { "glUniform1fv", 20, -1 }, 2366af69d88dSmrg { "glUniform1i", 20, -1 }, 2367af69d88dSmrg { "glUniform1iv", 20, -1 }, 2368af69d88dSmrg { "glUniform2f", 20, -1 }, 2369af69d88dSmrg { "glUniform2fv", 20, -1 }, 2370af69d88dSmrg { "glUniform2i", 20, -1 }, 2371af69d88dSmrg { "glUniform2iv", 20, -1 }, 2372af69d88dSmrg { "glUniform3f", 20, -1 }, 2373af69d88dSmrg { "glUniform3fv", 20, -1 }, 2374af69d88dSmrg { "glUniform3i", 20, -1 }, 2375af69d88dSmrg { "glUniform3iv", 20, -1 }, 2376af69d88dSmrg { "glUniform4f", 20, -1 }, 2377af69d88dSmrg { "glUniform4fv", 20, -1 }, 2378af69d88dSmrg { "glUniform4i", 20, -1 }, 2379af69d88dSmrg { "glUniform4iv", 20, -1 }, 2380af69d88dSmrg { "glUniformMatrix2fv", 20, -1 }, 2381af69d88dSmrg { "glUniformMatrix3fv", 20, -1 }, 2382af69d88dSmrg { "glUniformMatrix4fv", 20, -1 }, 2383af69d88dSmrg { "glUnmapBufferOES", 20, -1 }, 2384af69d88dSmrg { "glUseProgram", 20, -1 }, 2385af69d88dSmrg { "glValidateProgram", 20, -1 }, 2386af69d88dSmrg { "glVertexAttrib1f", 20, -1 }, 2387af69d88dSmrg { "glVertexAttrib1fv", 20, -1 }, 2388af69d88dSmrg { "glVertexAttrib2f", 20, -1 }, 2389af69d88dSmrg { "glVertexAttrib2fv", 20, -1 }, 2390af69d88dSmrg { "glVertexAttrib3f", 20, -1 }, 2391af69d88dSmrg { "glVertexAttrib3fv", 20, -1 }, 2392af69d88dSmrg { "glVertexAttrib4f", 20, -1 }, 2393af69d88dSmrg { "glVertexAttrib4fv", 20, -1 }, 2394af69d88dSmrg { "glVertexAttribPointer", 20, -1 }, 2395af69d88dSmrg { "glViewport", 20, _gloffset_Viewport }, 2396af69d88dSmrg 2397af69d88dSmrg /* GL_OES_get_program_binary - Also part of OpenGL ES 3.0. */ 2398af69d88dSmrg { "glGetProgramBinaryOES", 20, -1 }, 2399af69d88dSmrg { "glProgramBinaryOES", 20, -1 }, 2400af69d88dSmrg 2401af69d88dSmrg /* GL_EXT_separate_shader_objects - Also part of OpenGL ES 3.1. */ 2402af69d88dSmrg { "glProgramParameteriEXT", 20, -1 }, 2403af69d88dSmrg { "glUseProgramStagesEXT", 20, -1 }, 2404af69d88dSmrg { "glActiveShaderProgramEXT", 20, -1 }, 2405af69d88dSmrg { "glCreateShaderProgramvEXT", 20, -1 }, 2406af69d88dSmrg { "glBindProgramPipelineEXT", 20, -1 }, 2407af69d88dSmrg { "glDeleteProgramPipelinesEXT", 20, -1 }, 2408af69d88dSmrg { "glGenProgramPipelinesEXT", 20, -1 }, 2409af69d88dSmrg { "glIsProgramPipelineEXT", 20, -1 }, 2410af69d88dSmrg { "glGetProgramPipelineivEXT", 20, -1 }, 2411af69d88dSmrg { "glProgramUniform1iEXT", 20, -1 }, 2412af69d88dSmrg { "glProgramUniform1ivEXT", 20, -1 }, 2413af69d88dSmrg { "glProgramUniform1fEXT", 20, -1 }, 2414af69d88dSmrg { "glProgramUniform1fvEXT", 20, -1 }, 2415af69d88dSmrg { "glProgramUniform2iEXT", 20, -1 }, 2416af69d88dSmrg { "glProgramUniform2ivEXT", 20, -1 }, 2417af69d88dSmrg { "glProgramUniform2fEXT", 20, -1 }, 2418af69d88dSmrg { "glProgramUniform2fvEXT", 20, -1 }, 2419af69d88dSmrg { "glProgramUniform3iEXT", 20, -1 }, 2420af69d88dSmrg { "glProgramUniform3ivEXT", 20, -1 }, 2421af69d88dSmrg { "glProgramUniform3fEXT", 20, -1 }, 2422af69d88dSmrg { "glProgramUniform3fvEXT", 20, -1 }, 2423af69d88dSmrg { "glProgramUniform4iEXT", 20, -1 }, 2424af69d88dSmrg { "glProgramUniform4ivEXT", 20, -1 }, 2425af69d88dSmrg { "glProgramUniform4fEXT", 20, -1 }, 2426af69d88dSmrg { "glProgramUniform4fvEXT", 20, -1 }, 2427af69d88dSmrg { "glProgramUniformMatrix2fvEXT", 20, -1 }, 2428af69d88dSmrg { "glProgramUniformMatrix3fvEXT", 20, -1 }, 2429af69d88dSmrg { "glProgramUniformMatrix4fvEXT", 20, -1 }, 2430af69d88dSmrg { "glProgramUniformMatrix2x3fvEXT", 20, -1 }, 2431af69d88dSmrg { "glProgramUniformMatrix3x2fvEXT", 20, -1 }, 2432af69d88dSmrg { "glProgramUniformMatrix2x4fvEXT", 20, -1 }, 2433af69d88dSmrg { "glProgramUniformMatrix4x2fvEXT", 20, -1 }, 2434af69d88dSmrg { "glProgramUniformMatrix3x4fvEXT", 20, -1 }, 2435af69d88dSmrg { "glProgramUniformMatrix4x3fvEXT", 20, -1 }, 2436af69d88dSmrg { "glValidateProgramPipelineEXT", 20, -1 }, 2437af69d88dSmrg { "glGetProgramPipelineInfoLogEXT", 20, -1 }, 2438af69d88dSmrg 243901e04c3fSmrg /* GL_AMD_performance_monitor */ 244001e04c3fSmrg { "glGetPerfMonitorGroupsAMD", 20, -1 }, 244101e04c3fSmrg { "glGetPerfMonitorCountersAMD", 20, -1 }, 244201e04c3fSmrg { "glGetPerfMonitorGroupStringAMD", 20, -1 }, 244301e04c3fSmrg { "glGetPerfMonitorCounterStringAMD", 20, -1 }, 244401e04c3fSmrg { "glGetPerfMonitorCounterInfoAMD", 20, -1 }, 244501e04c3fSmrg { "glGenPerfMonitorsAMD", 20, -1 }, 244601e04c3fSmrg { "glDeletePerfMonitorsAMD", 20, -1 }, 244701e04c3fSmrg { "glSelectPerfMonitorCountersAMD", 20, -1 }, 244801e04c3fSmrg { "glBeginPerfMonitorAMD", 20, -1 }, 244901e04c3fSmrg { "glEndPerfMonitorAMD", 20, -1 }, 245001e04c3fSmrg { "glGetPerfMonitorCounterDataAMD", 20, -1 }, 245101e04c3fSmrg 2452af69d88dSmrg /* GL_INTEL_performance_query */ 2453af69d88dSmrg { "glGetFirstPerfQueryIdINTEL", 20, -1 }, 2454af69d88dSmrg { "glGetNextPerfQueryIdINTEL", 20, -1 }, 2455af69d88dSmrg { "glGetPerfQueryIdByNameINTEL", 20, -1 }, 2456af69d88dSmrg { "glGetPerfQueryInfoINTEL", 20, -1 }, 2457af69d88dSmrg { "glGetPerfCounterInfoINTEL", 20, -1 }, 2458af69d88dSmrg { "glCreatePerfQueryINTEL", 20, -1 }, 2459af69d88dSmrg { "glDeletePerfQueryINTEL", 20, -1 }, 2460af69d88dSmrg { "glBeginPerfQueryINTEL", 20, -1 }, 2461af69d88dSmrg { "glEndPerfQueryINTEL", 20, -1 }, 2462af69d88dSmrg { "glGetPerfQueryDataINTEL", 20, -1 }, 2463af69d88dSmrg 246401e04c3fSmrg /* GL_KHR_debug */ 246501e04c3fSmrg { "glPushDebugGroupKHR", 20, -1 }, 246601e04c3fSmrg { "glPopDebugGroupKHR", 20, -1 }, 246701e04c3fSmrg { "glDebugMessageCallbackKHR", 20, -1 }, 246801e04c3fSmrg { "glDebugMessageControlKHR", 20, -1 }, 246901e04c3fSmrg { "glDebugMessageInsertKHR", 20, -1 }, 247001e04c3fSmrg { "glGetDebugMessageLogKHR", 20, -1 }, 247101e04c3fSmrg { "glGetObjectLabelKHR", 20, -1 }, 247201e04c3fSmrg { "glGetObjectPtrLabelKHR", 20, -1 }, 247301e04c3fSmrg { "glGetPointervKHR", 20, -1 }, 247401e04c3fSmrg { "glObjectLabelKHR", 20, -1 }, 247501e04c3fSmrg { "glObjectPtrLabelKHR", 20, -1 }, 247601e04c3fSmrg 247701e04c3fSmrg /* GL_EXT_polygon_offset_clamp */ 247801e04c3fSmrg { "glPolygonOffsetClampEXT", 11, -1 }, 247901e04c3fSmrg 248001e04c3fSmrg /* GL_KHR_robustness */ 248101e04c3fSmrg { "glGetGraphicsResetStatusKHR", 20, -1 }, 248201e04c3fSmrg { "glReadnPixelsKHR", 20, -1 }, 248301e04c3fSmrg { "glGetnUniformfvKHR", 20, -1 }, 248401e04c3fSmrg { "glGetnUniformivKHR", 20, -1 }, 248501e04c3fSmrg { "glGetnUniformuivKHR", 20, -1 }, 248601e04c3fSmrg 248701e04c3fSmrg /* GL_KHR_blend_equation_advanced */ 248801e04c3fSmrg { "glBlendBarrierKHR", 20, -1 }, 248901e04c3fSmrg 249001e04c3fSmrg /* GL_EXT_occlusion_query_boolean */ 249101e04c3fSmrg { "glGenQueriesEXT", 20, -1 }, 249201e04c3fSmrg { "glDeleteQueriesEXT", 20, -1 }, 249301e04c3fSmrg { "glIsQueryEXT", 20, -1 }, 249401e04c3fSmrg { "glBeginQueryEXT", 20, -1 }, 249501e04c3fSmrg { "glEndQueryEXT", 20, -1 }, 249601e04c3fSmrg { "glGetQueryivEXT", 20, -1 }, 249701e04c3fSmrg { "glGetQueryObjectivEXT", 20, -1 }, 249801e04c3fSmrg { "glGetQueryObjectuivEXT", 20, -1 }, 249901e04c3fSmrg 25007ec681f3Smrg /* GL_EXT_clear_texture */ 25017ec681f3Smrg { "glClearTexImageEXT", 31, -1 }, 25027ec681f3Smrg { "glClearTexSubImageEXT", 31, -1 }, 25037ec681f3Smrg 25047ec681f3Smrg /* GL_EXT_clip_control */ 25057ec681f3Smrg { "glClipControlEXT", 20, -1 }, 25067ec681f3Smrg 250701e04c3fSmrg /* GL_EXT_disjoint_timer_query */ 250801e04c3fSmrg { "glGetQueryObjecti64vEXT", 20, -1 }, 250901e04c3fSmrg { "glGetQueryObjectui64vEXT", 20, -1 }, 251001e04c3fSmrg { "glQueryCounterEXT", 20, -1 }, 25117ec681f3Smrg { "glGetInteger64vEXT", 20, -1 }, 251201e04c3fSmrg 251301e04c3fSmrg /* GL_EXT_shader_framebuffer_fetch_non_coherent */ 251401e04c3fSmrg { "glFramebufferFetchBarrierEXT", 20, -1 }, 251501e04c3fSmrg 2516b9abf16eSmaya /* GL_NV_conditional_render */ 2517b9abf16eSmaya { "glBeginConditionalRenderNV", 20, -1 }, 2518b9abf16eSmaya { "glEndConditionalRenderNV", 20, -1 }, 2519b9abf16eSmaya 252001e04c3fSmrg /* GL_NV_conservative_raster */ 252101e04c3fSmrg { "glSubpixelPrecisionBiasNV", 20, -1 }, 252201e04c3fSmrg 252301e04c3fSmrg /* GL_NV_conservative_raster_dilate */ 252401e04c3fSmrg { "glConservativeRasterParameterfNV", 20, -1 }, 252501e04c3fSmrg 252601e04c3fSmrg /* GL_NV_conservative_raster_pre_snap_triangles */ 252701e04c3fSmrg { "glConservativeRasterParameteriNV", 20, -1 }, 252801e04c3fSmrg 2529b9abf16eSmaya /* GL_EXT_multisampled_render_to_texture */ 2530b9abf16eSmaya { "glRenderbufferStorageMultisampleEXT", 20, -1 }, 2531b9abf16eSmaya { "glFramebufferTexture2DMultisampleEXT", 20, -1 }, 2532b9abf16eSmaya 2533b9abf16eSmaya /* GL_KHR_parallel_shader_compile */ 2534b9abf16eSmaya { "glMaxShaderCompilerThreadsKHR", 20, -1 }, 2535b9abf16eSmaya 25367ec681f3Smrg { "glInternalBufferSubDataCopyMESA", 20, -1 }, 25377ec681f3Smrg { "glInternalSetError", 20, -1 }, 25387ec681f3Smrg 2539af69d88dSmrg { NULL, 0, -1 } 2540af69d88dSmrg}; 2541af69d88dSmrg 2542af69d88dSmrgconst struct function gles3_functions_possible[] = { 254301e04c3fSmrg // We check for the aliased -EXT version in GLES 2 254401e04c3fSmrg // { "glBeginQuery", 30, -1 }, 2545af69d88dSmrg { "glBeginTransformFeedback", 30, -1 }, 2546af69d88dSmrg { "glBindBufferBase", 30, -1 }, 2547af69d88dSmrg { "glBindBufferRange", 30, -1 }, 2548af69d88dSmrg { "glBindSampler", 30, -1 }, 2549af69d88dSmrg { "glBindTransformFeedback", 30, -1 }, 2550af69d88dSmrg // We check for the aliased -OES version in GLES 2 2551af69d88dSmrg // { "glBindVertexArray", 30, -1 }, 2552af69d88dSmrg { "glBlitFramebuffer", 30, -1 }, 2553af69d88dSmrg { "glClearBufferfi", 30, -1 }, 2554af69d88dSmrg { "glClearBufferfv", 30, -1 }, 2555af69d88dSmrg { "glClearBufferiv", 30, -1 }, 2556af69d88dSmrg { "glClearBufferuiv", 30, -1 }, 2557af69d88dSmrg { "glClientWaitSync", 30, -1 }, 2558af69d88dSmrg // We check for the aliased -OES version in GLES 2 2559af69d88dSmrg // { "glCompressedTexImage3D", 30, -1 }, 2560af69d88dSmrg // We check for the aliased -OES version in GLES 2 2561af69d88dSmrg // { "glCompressedTexSubImage3D", 30, -1 }, 2562af69d88dSmrg { "glCopyBufferSubData", 30, -1 }, 2563af69d88dSmrg // We check for the aliased -OES version in GLES 2 2564af69d88dSmrg // { "glCopyTexSubImage3D", 30, -1 }, 256501e04c3fSmrg // We check for the aliased -EXT version in GLES 2 256601e04c3fSmrg // { "glDeleteQueries", 30, -1 }, 2567af69d88dSmrg { "glDeleteSamplers", 30, -1 }, 2568af69d88dSmrg { "glDeleteSync", 30, -1 }, 2569af69d88dSmrg { "glDeleteTransformFeedbacks", 30, -1 }, 2570af69d88dSmrg // We check for the aliased -OES version in GLES 2 2571af69d88dSmrg // { "glDeleteVertexArrays", 30, -1 }, 2572af69d88dSmrg { "glDrawArraysInstanced", 30, -1 }, 2573af69d88dSmrg // We check for the aliased -NV version in GLES 2 2574af69d88dSmrg // { "glDrawBuffers", 30, -1 }, 2575af69d88dSmrg { "glDrawElementsInstanced", 30, -1 }, 2576af69d88dSmrg { "glDrawRangeElements", 30, -1 }, 25777ec681f3Smrg { "glDrawRangeElementsBaseVertex", 30, -1 }, 257801e04c3fSmrg // We check for the aliased -EXT version in GLES 2 257901e04c3fSmrg // { "glEndQuery", 30, -1 }, 2580af69d88dSmrg { "glEndTransformFeedback", 30, -1 }, 2581af69d88dSmrg { "glFenceSync", 30, -1 }, 2582af69d88dSmrg // We check for the aliased -EXT version in GLES 2 2583af69d88dSmrg // { "glFlushMappedBufferRange", 30, -1 }, 2584af69d88dSmrg { "glFramebufferTextureLayer", 30, -1 }, 258501e04c3fSmrg // We check for the aliased -EXT version in GLES 2 258601e04c3fSmrg // { "glGenQueries", 30, -1 }, 2587af69d88dSmrg { "glGenSamplers", 30, -1 }, 2588af69d88dSmrg { "glGenTransformFeedbacks", 30, -1 }, 2589af69d88dSmrg // We check for the aliased -OES version in GLES 2 2590af69d88dSmrg // { "glGenVertexArrays", 30, -1 }, 2591af69d88dSmrg { "glGetActiveUniformBlockiv", 30, -1 }, 2592af69d88dSmrg { "glGetActiveUniformBlockName", 30, -1 }, 2593af69d88dSmrg { "glGetActiveUniformsiv", 30, -1 }, 2594af69d88dSmrg { "glGetBufferParameteri64v", 30, -1 }, 2595af69d88dSmrg // We check for the aliased -OES version in GLES 2 2596af69d88dSmrg // { "glGetBufferPointerv", 30, -1 }, 2597af69d88dSmrg { "glGetFragDataLocation", 30, -1 }, 2598af69d88dSmrg { "glGetInteger64i_v", 30, -1 }, 25997ec681f3Smrg // We check for the aliased -EXT version in GLES 2 26007ec681f3Smrg //{ "glGetInteger64v", 30, -1 }, 2601af69d88dSmrg { "glGetIntegeri_v", 30, -1 }, 2602af69d88dSmrg { "glGetInternalformativ", 30, -1 }, 260301e04c3fSmrg { "glGetInternalformati64v", 30, -1 }, 2604af69d88dSmrg // glGetProgramBinary aliases glGetProgramBinaryOES in GLES 2 260501e04c3fSmrg // We check for the aliased -EXT version in GLES 2 260601e04c3fSmrg // { "glGetQueryiv", 30, -1 }, 260701e04c3fSmrg // We check for the aliased -EXT version in GLES 2 260801e04c3fSmrg // { "glGetQueryObjectuiv", 30, -1 }, 2609af69d88dSmrg { "glGetSamplerParameterfv", 30, -1 }, 2610af69d88dSmrg { "glGetSamplerParameteriv", 30, -1 }, 2611af69d88dSmrg { "glGetStringi", 30, -1 }, 2612af69d88dSmrg { "glGetSynciv", 30, -1 }, 2613af69d88dSmrg { "glGetTransformFeedbackVarying", 30, -1 }, 2614af69d88dSmrg { "glGetUniformBlockIndex", 30, -1 }, 2615af69d88dSmrg { "glGetUniformIndices", 30, -1 }, 2616af69d88dSmrg { "glGetUniformuiv", 30, -1 }, 2617af69d88dSmrg { "glGetVertexAttribIiv", 30, -1 }, 2618af69d88dSmrg { "glGetVertexAttribIuiv", 30, -1 }, 2619af69d88dSmrg { "glInvalidateFramebuffer", 30, -1 }, 2620af69d88dSmrg { "glInvalidateSubFramebuffer", 30, -1 }, 262101e04c3fSmrg // We check for the aliased -EXT version in GLES 2 262201e04c3fSmrg // { "glIsQuery", 30, -1 }, 2623af69d88dSmrg { "glIsSampler", 30, -1 }, 2624af69d88dSmrg { "glIsSync", 30, -1 }, 2625af69d88dSmrg { "glIsTransformFeedback", 30, -1 }, 2626af69d88dSmrg // We check for the aliased -OES version in GLES 2 2627af69d88dSmrg // { "glIsVertexArray", 30, -1 }, 2628af69d88dSmrg // We check for the aliased -EXT version in GLES 2 2629af69d88dSmrg // { "glMapBufferRange", 30, -1 }, 2630af69d88dSmrg { "glPauseTransformFeedback", 30, -1 }, 2631af69d88dSmrg // glProgramBinary aliases glProgramBinaryOES in GLES 2 2632af69d88dSmrg // glProgramParameteri aliases glProgramParameteriEXT in GLES 2 2633af69d88dSmrg // We check for the aliased -NV version in GLES 2 2634af69d88dSmrg // { "glReadBuffer", 30, -1 }, 2635b9abf16eSmaya // glRenderbufferStorageMultisample aliases glRenderbufferStorageMultisampleEXT in GLES 2 2636af69d88dSmrg { "glResumeTransformFeedback", 30, -1 }, 2637af69d88dSmrg { "glSamplerParameterf", 30, -1 }, 2638af69d88dSmrg { "glSamplerParameterfv", 30, -1 }, 2639af69d88dSmrg { "glSamplerParameteri", 30, -1 }, 2640af69d88dSmrg { "glSamplerParameteriv", 30, -1 }, 2641af69d88dSmrg // We check for the aliased -OES version in GLES 2 2642af69d88dSmrg // { "glTexImage3D", 30, -1 }, 2643af69d88dSmrg { "glTexStorage2D", 30, -1 }, 2644af69d88dSmrg { "glTexStorage3D", 30, -1 }, 2645af69d88dSmrg // We check for the aliased -OES version in GLES 2 2646af69d88dSmrg // { "glTexSubImage3D", 30, -1 }, 2647af69d88dSmrg { "glTransformFeedbackVaryings", 30, -1 }, 2648af69d88dSmrg { "glUniform1ui", 30, -1 }, 2649af69d88dSmrg { "glUniform1uiv", 30, -1 }, 2650af69d88dSmrg { "glUniform2ui", 30, -1 }, 2651af69d88dSmrg { "glUniform2uiv", 30, -1 }, 2652af69d88dSmrg { "glUniform3ui", 30, -1 }, 2653af69d88dSmrg { "glUniform3uiv", 30, -1 }, 2654af69d88dSmrg { "glUniform4ui", 30, -1 }, 2655af69d88dSmrg { "glUniform4uiv", 30, -1 }, 2656af69d88dSmrg { "glUniformBlockBinding", 30, -1 }, 2657af69d88dSmrg { "glUniformMatrix2x3fv", 30, -1 }, 2658af69d88dSmrg { "glUniformMatrix2x4fv", 30, -1 }, 2659af69d88dSmrg { "glUniformMatrix3x2fv", 30, -1 }, 2660af69d88dSmrg { "glUniformMatrix3x4fv", 30, -1 }, 2661af69d88dSmrg { "glUniformMatrix4x2fv", 30, -1 }, 2662af69d88dSmrg { "glUniformMatrix4x3fv", 30, -1 }, 2663af69d88dSmrg // We check for the aliased -OES version in GLES 2 2664af69d88dSmrg // { "glUnmapBuffer", 30, -1 }, 2665af69d88dSmrg { "glVertexAttribDivisor", 30, -1 }, 2666af69d88dSmrg { "glVertexAttribI4i", 30, -1 }, 2667af69d88dSmrg { "glVertexAttribI4iv", 30, -1 }, 2668af69d88dSmrg { "glVertexAttribI4ui", 30, -1 }, 2669af69d88dSmrg { "glVertexAttribI4uiv", 30, -1 }, 2670af69d88dSmrg { "glVertexAttribIPointer", 30, -1 }, 2671af69d88dSmrg { "glWaitSync", 30, -1 }, 2672af69d88dSmrg 2673af69d88dSmrg /* GL_EXT_separate_shader_objects - Also part of OpenGL ES 3.1. */ 2674af69d88dSmrg { "glProgramUniform1uiEXT", 30, -1 }, 2675af69d88dSmrg { "glProgramUniform1uivEXT", 30, -1 }, 2676af69d88dSmrg { "glProgramUniform2uiEXT", 30, -1 }, 2677af69d88dSmrg { "glProgramUniform2uivEXT", 30, -1 }, 2678af69d88dSmrg { "glProgramUniform3uiEXT", 30, -1 }, 2679af69d88dSmrg { "glProgramUniform3uivEXT", 30, -1 }, 2680af69d88dSmrg { "glProgramUniform4uiEXT", 30, -1 }, 2681af69d88dSmrg { "glProgramUniform4uivEXT", 30, -1 }, 2682af69d88dSmrg 268301e04c3fSmrg /* GL_EXT_blend_func_extended */ 268401e04c3fSmrg { "glBindFragDataLocationIndexedEXT", 30, -1 }, 268501e04c3fSmrg { "glGetFragDataIndexEXT", 30, -1 }, 268601e04c3fSmrg { "glBindFragDataLocationEXT", 30, -1 }, 268701e04c3fSmrg 268801e04c3fSmrg /* GL_OES_texture_border_clamp */ 268901e04c3fSmrg { "glTexParameterIivOES", 30, -1 }, 269001e04c3fSmrg { "glTexParameterIuivOES", 30, -1 }, 269101e04c3fSmrg { "glGetTexParameterIivOES", 30, -1 }, 269201e04c3fSmrg { "glGetTexParameterIuivOES", 30, -1 }, 269301e04c3fSmrg { "glSamplerParameterIivOES", 30, -1 }, 269401e04c3fSmrg { "glSamplerParameterIuivOES", 30, -1 }, 269501e04c3fSmrg { "glGetSamplerParameterIivOES", 30, -1 }, 269601e04c3fSmrg { "glGetSamplerParameterIuivOES", 30, -1 }, 269701e04c3fSmrg 269801e04c3fSmrg /* GL_OES_texture_buffer */ 269901e04c3fSmrg { "glTexBufferOES", 31, -1 }, 270001e04c3fSmrg { "glTexBufferRangeOES", 31, -1 }, 270101e04c3fSmrg 270201e04c3fSmrg /* GL_OES_sample_shading */ 270301e04c3fSmrg { "glMinSampleShadingOES", 30, -1 }, 270401e04c3fSmrg 270501e04c3fSmrg /* GL_OES_copy_image */ 270601e04c3fSmrg { "glCopyImageSubDataOES", 30, -1 }, 270701e04c3fSmrg 270801e04c3fSmrg /* GL_OES_draw_buffers_indexed */ 270901e04c3fSmrg { "glBlendFunciOES", 30, -1 }, 271001e04c3fSmrg { "glBlendFuncSeparateiOES", 30, -1 }, 271101e04c3fSmrg { "glBlendEquationiOES", 30, -1 }, 271201e04c3fSmrg { "glBlendEquationSeparateiOES", 30, -1 }, 271301e04c3fSmrg { "glColorMaskiOES", 30, -1 }, 271401e04c3fSmrg { "glEnableiOES", 30, -1 }, 271501e04c3fSmrg { "glDisableiOES", 30, -1 }, 271601e04c3fSmrg { "glIsEnablediOES", 30, -1 }, 271701e04c3fSmrg 271801e04c3fSmrg /* GL_EXT_base_instance */ 271901e04c3fSmrg { "glDrawArraysInstancedBaseInstanceEXT", 30, -1 }, 272001e04c3fSmrg { "glDrawElementsInstancedBaseInstanceEXT", 30, -1 }, 272101e04c3fSmrg { "glDrawElementsInstancedBaseVertexBaseInstanceEXT", 30, -1 }, 272201e04c3fSmrg 272301e04c3fSmrg /* GL_EXT_window_rectangles */ 272401e04c3fSmrg { "glWindowRectanglesEXT", 30, -1 }, 272501e04c3fSmrg 272601e04c3fSmrg /* GL_AMD_framebuffer_multisample_advanced */ 272701e04c3fSmrg { "glRenderbufferStorageMultisampleAdvancedAMD", 11, -1 }, 272801e04c3fSmrg { "glNamedRenderbufferStorageMultisampleAdvancedAMD", 11, -1 }, 272901e04c3fSmrg 27307ec681f3Smrg /* GL_MESA_framebuffer_flip_y */ 27317ec681f3Smrg { "glFramebufferParameteriMESA", 30, -1 }, 27327ec681f3Smrg { "glGetFramebufferParameterivMESA", 30, -1 }, 27337ec681f3Smrg 27347ec681f3Smrg /* EXT_EGL_image_storage */ 27357ec681f3Smrg { "glEGLImageTargetTexStorageEXT", 30, -1 }, 27367ec681f3Smrg 27377ec681f3Smrg { "glDrawElementsInstancedBaseVertex", 30, -1 }, 27387ec681f3Smrg 2739af69d88dSmrg { NULL, 0, -1 } 2740af69d88dSmrg}; 274101e04c3fSmrg 274201e04c3fSmrgconst struct function gles31_functions_possible[] = { 274301e04c3fSmrg { "glDispatchCompute", 31, -1 }, 274401e04c3fSmrg { "glDispatchComputeIndirect", 31, -1 }, 274501e04c3fSmrg { "glDrawArraysIndirect", 31, -1 }, 274601e04c3fSmrg { "glDrawElementsIndirect", 31, -1 }, 274701e04c3fSmrg 274801e04c3fSmrg { "glFramebufferParameteri", 31, -1 }, 274901e04c3fSmrg { "glGetFramebufferParameteriv", 31, -1 }, 275001e04c3fSmrg 275101e04c3fSmrg { "glGetProgramInterfaceiv", 31, -1 }, 275201e04c3fSmrg { "glGetProgramResourceIndex", 31, -1 }, 275301e04c3fSmrg { "glGetProgramResourceName", 31, -1 }, 275401e04c3fSmrg { "glGetProgramResourceiv", 31, -1 }, 275501e04c3fSmrg { "glGetProgramResourceLocation", 31, -1 }, 275601e04c3fSmrg 275701e04c3fSmrg // We check for the aliased EXT versions in GLES 2 275801e04c3fSmrg // { "glUseProgramStages", 31, -1 }, 275901e04c3fSmrg // { "glActiveShaderProgram", 31, -1 }, 276001e04c3fSmrg // { "glCreateShaderProgramv", 31, -1 }, 276101e04c3fSmrg // { "glBindProgramPipeline", 31, -1 }, 276201e04c3fSmrg // { "glDeleteProgramPipelines", 31, -1 }, 276301e04c3fSmrg // { "glGenProgramPipelines", 31, -1 }, 276401e04c3fSmrg // { "glIsProgramPipeline", 31, -1 }, 276501e04c3fSmrg // { "glGetProgramPipelineiv", 31, -1 }, 276601e04c3fSmrg // { "glProgramUniform1i", 31, -1 }, 276701e04c3fSmrg // { "glProgramUniform2i", 31, -1 }, 276801e04c3fSmrg // { "glProgramUniform3i", 31, -1 }, 276901e04c3fSmrg // { "glProgramUniform4i", 31, -1 }, 277001e04c3fSmrg // { "glProgramUniform1f", 31, -1 }, 277101e04c3fSmrg // { "glProgramUniform2f", 31, -1 }, 277201e04c3fSmrg // { "glProgramUniform3f", 31, -1 }, 277301e04c3fSmrg // { "glProgramUniform4f", 31, -1 }, 277401e04c3fSmrg // { "glProgramUniform1iv", 31, -1 }, 277501e04c3fSmrg // { "glProgramUniform2iv", 31, -1 }, 277601e04c3fSmrg // { "glProgramUniform3iv", 31, -1 }, 277701e04c3fSmrg // { "glProgramUniform4iv", 31, -1 }, 277801e04c3fSmrg // { "glProgramUniform1fv", 31, -1 }, 277901e04c3fSmrg // { "glProgramUniform2fv", 31, -1 }, 278001e04c3fSmrg // { "glProgramUniform3fv", 31, -1 }, 278101e04c3fSmrg // { "glProgramUniform4fv", 31, -1 }, 278201e04c3fSmrg // { "glProgramUniformMatrix2fv", 31, -1 }, 278301e04c3fSmrg // { "glProgramUniformMatrix3fv", 31, -1 }, 278401e04c3fSmrg // { "glProgramUniformMatrix4fv", 31, -1 }, 278501e04c3fSmrg // { "glProgramUniformMatrix2x3fv", 31, -1 }, 278601e04c3fSmrg // { "glProgramUniformMatrix3x2fv", 31, -1 }, 278701e04c3fSmrg // { "glProgramUniformMatrix2x4fv", 31, -1 }, 278801e04c3fSmrg // { "glProgramUniformMatrix4x2fv", 31, -1 }, 278901e04c3fSmrg // { "glProgramUniformMatrix3x4fv", 31, -1 }, 279001e04c3fSmrg // { "glProgramUniformMatrix4x3fv", 31, -1 }, 279101e04c3fSmrg // { "glValidateProgramPipeline", 31, -1 }, 279201e04c3fSmrg // { "glGetProgramPipelineInfoLog", 31, -1 }, 279301e04c3fSmrg 279401e04c3fSmrg // We check for the aliased EXT versions in GLES 3 279501e04c3fSmrg // { "glProgramUniform1ui", 31, -1 }, 279601e04c3fSmrg // { "glProgramUniform2ui", 31, -1 }, 279701e04c3fSmrg // { "glProgramUniform3ui", 31, -1 }, 279801e04c3fSmrg // { "glProgramUniform4ui", 31, -1 }, 279901e04c3fSmrg // { "glProgramUniform1uiv", 31, -1 }, 280001e04c3fSmrg // { "glProgramUniform2uiv", 31, -1 }, 280101e04c3fSmrg // { "glProgramUniform3uiv", 31, -1 }, 280201e04c3fSmrg // { "glProgramUniform4uiv", 31, -1 }, 280301e04c3fSmrg 280401e04c3fSmrg { "glBindImageTexture", 31, -1 }, 280501e04c3fSmrg { "glGetBooleani_v", 31, -1 }, 280601e04c3fSmrg { "glMemoryBarrier", 31, -1 }, 280701e04c3fSmrg 280801e04c3fSmrg { "glMemoryBarrierByRegion", 31, -1 }, 280901e04c3fSmrg 281001e04c3fSmrg { "glTexStorage2DMultisample", 31, -1 }, 281101e04c3fSmrg { "glGetMultisamplefv", 31, -1 }, 281201e04c3fSmrg { "glSampleMaski", 31, -1 }, 281301e04c3fSmrg { "glGetTexLevelParameteriv", 31, -1 }, 281401e04c3fSmrg { "glGetTexLevelParameterfv", 31, -1 }, 281501e04c3fSmrg { "glBindVertexBuffer", 31, -1 }, 281601e04c3fSmrg { "glVertexAttribFormat", 31, -1 }, 281701e04c3fSmrg { "glVertexAttribIFormat", 31, -1 }, 281801e04c3fSmrg { "glVertexAttribBinding", 31, -1 }, 281901e04c3fSmrg { "glVertexBindingDivisor", 31, -1 }, 282001e04c3fSmrg 282101e04c3fSmrg /* GL_OES_texture_storage_multisample_2d_array */ 282201e04c3fSmrg { "glTexStorage3DMultisampleOES", 31, -1 }, 282301e04c3fSmrg 282401e04c3fSmrg /* GL_OES_texture_view */ 282501e04c3fSmrg { "glTextureViewOES", 31, -1 }, 282601e04c3fSmrg 282701e04c3fSmrg /* GL_EXT_buffer_storage */ 282801e04c3fSmrg { "glBufferStorageEXT", 31, -1 }, 282901e04c3fSmrg 283001e04c3fSmrg /* GL_EXT_blend_func_extended */ 283101e04c3fSmrg { "glGetProgramResourceLocationIndexEXT", 31, -1 }, 283201e04c3fSmrg 283301e04c3fSmrg /* GL_OES_geometry_shader */ 283401e04c3fSmrg { "glFramebufferTextureOES", 31, -1}, 283501e04c3fSmrg 283601e04c3fSmrg /* GL_EXT_geometry_shader */ 283701e04c3fSmrg // We check for the aliased OES version above 283801e04c3fSmrg // { "glFramebufferTextureEXT", 31, -1}, 283901e04c3fSmrg 284001e04c3fSmrg /* GL_OES_tessellation_shader */ 284101e04c3fSmrg { "glPatchParameteriOES", 31, -1 }, 284201e04c3fSmrg 284301e04c3fSmrg /* GL_OES_primitive_bound_box */ 284401e04c3fSmrg { "glPrimitiveBoundingBoxOES", 31, -1 }, 284501e04c3fSmrg 284601e04c3fSmrg /* GL_OES_viewport_array */ 284701e04c3fSmrg { "glViewportArrayvOES", 31, -1 }, 284801e04c3fSmrg { "glViewportIndexedfOES", 31, -1 }, 284901e04c3fSmrg { "glViewportIndexedfvOES", 31, -1 }, 285001e04c3fSmrg { "glScissorArrayvOES", 31, -1 }, 285101e04c3fSmrg { "glScissorIndexedOES", 31, -1 }, 285201e04c3fSmrg { "glScissorIndexedvOES", 31, -1 }, 285301e04c3fSmrg { "glDepthRangeArrayfvOES", 31, -1 }, 285401e04c3fSmrg { "glDepthRangeIndexedfOES", 31, -1 }, 285501e04c3fSmrg { "glGetFloati_vOES", 31, -1 }, 285601e04c3fSmrg 285701e04c3fSmrg /* GL_ARB_sample_locations */ 285801e04c3fSmrg { "glFramebufferSampleLocationsfvARB", 31, -1 }, 285901e04c3fSmrg { "glNamedFramebufferSampleLocationsfvARB", 31, -1 }, 286001e04c3fSmrg { "glEvaluateDepthValuesARB", 31, -1 }, 286101e04c3fSmrg 28627ec681f3Smrg /* GL_NV_viewport_swizzle */ 28637ec681f3Smrg { "glViewportSwizzleNV", 31, -1 }, 28647ec681f3Smrg 286501e04c3fSmrg { NULL, 0, -1 }, 286601e04c3fSmrg }; 2867