#!/usr/bin/env python

# Copyright (C) 2015 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.

"""Table of functions that have ABI-mandated offsets in the dispatch table.

This list will never change."""
offsets = {
    "NewList": 0,
    "EndList": 1,
    "CallList": 2,
    "CallLists": 3,
    "DeleteLists": 4,
    "GenLists": 5,
    "ListBase": 6,
    "Begin": 7,
    "Bitmap": 8,
    "Color3b": 9,
    "Color3bv": 10,
    "Color3d": 11,
    "Color3dv": 12,
    "Color3f": 13,
    "Color3fv": 14,
    "Color3i": 15,
    "Color3iv": 16,
    "Color3s": 17,
    "Color3sv": 18,
    "Color3ub": 19,
    "Color3ubv": 20,
    "Color3ui": 21,
    "Color3uiv": 22,
    "Color3us": 23,
    "Color3usv": 24,
    "Color4b": 25,
    "Color4bv": 26,
    "Color4d": 27,
    "Color4dv": 28,
    "Color4f": 29,
    "Color4fv": 30,
    "Color4i": 31,
    "Color4iv": 32,
    "Color4s": 33,
    "Color4sv": 34,
    "Color4ub": 35,
    "Color4ubv": 36,
    "Color4ui": 37,
    "Color4uiv": 38,
    "Color4us": 39,
    "Color4usv": 40,
    "EdgeFlag": 41,
    "EdgeFlagv": 42,
    "End": 43,
    "Indexd": 44,
    "Indexdv": 45,
    "Indexf": 46,
    "Indexfv": 47,
    "Indexi": 48,
    "Indexiv": 49,
    "Indexs": 50,
    "Indexsv": 51,
    "Normal3b": 52,
    "Normal3bv": 53,
    "Normal3d": 54,
    "Normal3dv": 55,
    "Normal3f": 56,
    "Normal3fv": 57,
    "Normal3i": 58,
    "Normal3iv": 59,
    "Normal3s": 60,
    "Normal3sv": 61,
    "RasterPos2d": 62,
    "RasterPos2dv": 63,
    "RasterPos2f": 64,
    "RasterPos2fv": 65,
    "RasterPos2i": 66,
    "RasterPos2iv": 67,
    "RasterPos2s": 68,
    "RasterPos2sv": 69,
    "RasterPos3d": 70,
    "RasterPos3dv": 71,
    "RasterPos3f": 72,
    "RasterPos3fv": 73,
    "RasterPos3i": 74,
    "RasterPos3iv": 75,
    "RasterPos3s": 76,
    "RasterPos3sv": 77,
    "RasterPos4d": 78,
    "RasterPos4dv": 79,
    "RasterPos4f": 80,
    "RasterPos4fv": 81,
    "RasterPos4i": 82,
    "RasterPos4iv": 83,
    "RasterPos4s": 84,
    "RasterPos4sv": 85,
    "Rectd": 86,
    "Rectdv": 87,
    "Rectf": 88,
    "Rectfv": 89,
    "Recti": 90,
    "Rectiv": 91,
    "Rects": 92,
    "Rectsv": 93,
    "TexCoord1d": 94,
    "TexCoord1dv": 95,
    "TexCoord1f": 96,
    "TexCoord1fv": 97,
    "TexCoord1i": 98,
    "TexCoord1iv": 99,
    "TexCoord1s": 100,
    "TexCoord1sv": 101,
    "TexCoord2d": 102,
    "TexCoord2dv": 103,
    "TexCoord2f": 104,
    "TexCoord2fv": 105,
    "TexCoord2i": 106,
    "TexCoord2iv": 107,
    "TexCoord2s": 108,
    "TexCoord2sv": 109,
    "TexCoord3d": 110,
    "TexCoord3dv": 111,
    "TexCoord3f": 112,
    "TexCoord3fv": 113,
    "TexCoord3i": 114,
    "TexCoord3iv": 115,
    "TexCoord3s": 116,
    "TexCoord3sv": 117,
    "TexCoord4d": 118,
    "TexCoord4dv": 119,
    "TexCoord4f": 120,
    "TexCoord4fv": 121,
    "TexCoord4i": 122,
    "TexCoord4iv": 123,
    "TexCoord4s": 124,
    "TexCoord4sv": 125,
    "Vertex2d": 126,
    "Vertex2dv": 127,
    "Vertex2f": 128,
    "Vertex2fv": 129,
    "Vertex2i": 130,
    "Vertex2iv": 131,
    "Vertex2s": 132,
    "Vertex2sv": 133,
    "Vertex3d": 134,
    "Vertex3dv": 135,
    "Vertex3f": 136,
    "Vertex3fv": 137,
    "Vertex3i": 138,
    "Vertex3iv": 139,
    "Vertex3s": 140,
    "Vertex3sv": 141,
    "Vertex4d": 142,
    "Vertex4dv": 143,
    "Vertex4f": 144,
    "Vertex4fv": 145,
    "Vertex4i": 146,
    "Vertex4iv": 147,
    "Vertex4s": 148,
    "Vertex4sv": 149,
    "ClipPlane": 150,
    "ColorMaterial": 151,
    "CullFace": 152,
    "Fogf": 153,
    "Fogfv": 154,
    "Fogi": 155,
    "Fogiv": 156,
    "FrontFace": 157,
    "Hint": 158,
    "Lightf": 159,
    "Lightfv": 160,
    "Lighti": 161,
    "Lightiv": 162,
    "LightModelf": 163,
    "LightModelfv": 164,
    "LightModeli": 165,
    "LightModeliv": 166,
    "LineStipple": 167,
    "LineWidth": 168,
    "Materialf": 169,
    "Materialfv": 170,
    "Materiali": 171,
    "Materialiv": 172,
    "PointSize": 173,
    "PolygonMode": 174,
    "PolygonStipple": 175,
    "Scissor": 176,
    "ShadeModel": 177,
    "TexParameterf": 178,
    "TexParameterfv": 179,
    "TexParameteri": 180,
    "TexParameteriv": 181,
    "TexImage1D": 182,
    "TexImage2D": 183,
    "TexEnvf": 184,
    "TexEnvfv": 185,
    "TexEnvi": 186,
    "TexEnviv": 187,
    "TexGend": 188,
    "TexGendv": 189,
    "TexGenf": 190,
    "TexGenfv": 191,
    "TexGeni": 192,
    "TexGeniv": 193,
    "FeedbackBuffer": 194,
    "SelectBuffer": 195,
    "RenderMode": 196,
    "InitNames": 197,
    "LoadName": 198,
    "PassThrough": 199,
    "PopName": 200,
    "PushName": 201,
    "DrawBuffer": 202,
    "Clear": 203,
    "ClearAccum": 204,
    "ClearIndex": 205,
    "ClearColor": 206,
    "ClearStencil": 207,
    "ClearDepth": 208,
    "StencilMask": 209,
    "ColorMask": 210,
    "DepthMask": 211,
    "IndexMask": 212,
    "Accum": 213,
    "Disable": 214,
    "Enable": 215,
    "Finish": 216,
    "Flush": 217,
    "PopAttrib": 218,
    "PushAttrib": 219,
    "Map1d": 220,
    "Map1f": 221,
    "Map2d": 222,
    "Map2f": 223,
    "MapGrid1d": 224,
    "MapGrid1f": 225,
    "MapGrid2d": 226,
    "MapGrid2f": 227,
    "EvalCoord1d": 228,
    "EvalCoord1dv": 229,
    "EvalCoord1f": 230,
    "EvalCoord1fv": 231,
    "EvalCoord2d": 232,
    "EvalCoord2dv": 233,
    "EvalCoord2f": 234,
    "EvalCoord2fv": 235,
    "EvalMesh1": 236,
    "EvalPoint1": 237,
    "EvalMesh2": 238,
    "EvalPoint2": 239,
    "AlphaFunc": 240,
    "BlendFunc": 241,
    "LogicOp": 242,
    "StencilFunc": 243,
    "StencilOp": 244,
    "DepthFunc": 245,
    "PixelZoom": 246,
    "PixelTransferf": 247,
    "PixelTransferi": 248,
    "PixelStoref": 249,
    "PixelStorei": 250,
    "PixelMapfv": 251,
    "PixelMapuiv": 252,
    "PixelMapusv": 253,
    "ReadBuffer": 254,
    "CopyPixels": 255,
    "ReadPixels": 256,
    "DrawPixels": 257,
    "GetBooleanv": 258,
    "GetClipPlane": 259,
    "GetDoublev": 260,
    "GetError": 261,
    "GetFloatv": 262,
    "GetIntegerv": 263,
    "GetLightfv": 264,
    "GetLightiv": 265,
    "GetMapdv": 266,
    "GetMapfv": 267,
    "GetMapiv": 268,
    "GetMaterialfv": 269,
    "GetMaterialiv": 270,
    "GetPixelMapfv": 271,
    "GetPixelMapuiv": 272,
    "GetPixelMapusv": 273,
    "GetPolygonStipple": 274,
    "GetString": 275,
    "GetTexEnvfv": 276,
    "GetTexEnviv": 277,
    "GetTexGendv": 278,
    "GetTexGenfv": 279,
    "GetTexGeniv": 280,
    "GetTexImage": 281,
    "GetTexParameterfv": 282,
    "GetTexParameteriv": 283,
    "GetTexLevelParameterfv": 284,
    "GetTexLevelParameteriv": 285,
    "IsEnabled": 286,
    "IsList": 287,
    "DepthRange": 288,
    "Frustum": 289,
    "LoadIdentity": 290,
    "LoadMatrixf": 291,
    "LoadMatrixd": 292,
    "MatrixMode": 293,
    "MultMatrixf": 294,
    "MultMatrixd": 295,
    "Ortho": 296,
    "PopMatrix": 297,
    "PushMatrix": 298,
    "Rotated": 299,
    "Rotatef": 300,
    "Scaled": 301,
    "Scalef": 302,
    "Translated": 303,
    "Translatef": 304,
    "Viewport": 305,
    "ArrayElement": 306,
    "ColorPointer": 308,
    "DisableClientState": 309,
    "DrawArrays": 310,
    "DrawElements": 311,
    "EdgeFlagPointer": 312,
    "EnableClientState": 313,
    "GetPointerv": 329,
    "IndexPointer": 314,
    "InterleavedArrays": 317,
    "NormalPointer": 318,
    "TexCoordPointer": 320,
    "VertexPointer": 321,
    "PolygonOffset": 319,
    "CopyTexImage1D": 323,
    "CopyTexImage2D": 324,
    "CopyTexSubImage1D": 325,
    "CopyTexSubImage2D": 326,
    "TexSubImage1D": 332,
    "TexSubImage2D": 333,
    "AreTexturesResident": 322,
    "BindTexture": 307,
    "DeleteTextures": 327,
    "GenTextures": 328,
    "IsTexture": 330,
    "PrioritizeTextures": 331,
    "Indexub": 315,
    "Indexubv": 316,
    "PopClientAttrib": 334,
    "PushClientAttrib": 335,
    "BlendColor": 336,
    "BlendEquation": 337,
    "DrawRangeElements": 338,
    "ColorTable": 339,
    "ColorTableParameterfv": 340,
    "ColorTableParameteriv": 341,
    "CopyColorTable": 342,
    "GetColorTable": 343,
    "GetColorTableParameterfv": 344,
    "GetColorTableParameteriv": 345,
    "ColorSubTable": 346,
    "CopyColorSubTable": 347,
    "ConvolutionFilter1D": 348,
    "ConvolutionFilter2D": 349,
    "ConvolutionParameterf": 350,
    "ConvolutionParameterfv": 351,
    "ConvolutionParameteri": 352,
    "ConvolutionParameteriv": 353,
    "CopyConvolutionFilter1D": 354,
    "CopyConvolutionFilter2D": 355,
    "GetConvolutionFilter": 356,
    "GetConvolutionParameterfv": 357,
    "GetConvolutionParameteriv": 358,
    "GetSeparableFilter": 359,
    "SeparableFilter2D": 360,
    "GetHistogram": 361,
    "GetHistogramParameterfv": 362,
    "GetHistogramParameteriv": 363,
    "GetMinmax": 364,
    "GetMinmaxParameterfv": 365,
    "GetMinmaxParameteriv": 366,
    "Histogram": 367,
    "Minmax": 368,
    "ResetHistogram": 369,
    "ResetMinmax": 370,
    "TexImage3D": 371,
    "TexSubImage3D": 372,
    "CopyTexSubImage3D": 373,
    "ActiveTexture": 374,
    "ClientActiveTexture": 375,
    "MultiTexCoord1d": 376,
    "MultiTexCoord1dv": 377,
    "MultiTexCoord1fARB": 378,
    "MultiTexCoord1fvARB": 379,
    "MultiTexCoord1i": 380,
    "MultiTexCoord1iv": 381,
    "MultiTexCoord1s": 382,
    "MultiTexCoord1sv": 383,
    "MultiTexCoord2d": 384,
    "MultiTexCoord2dv": 385,
    "MultiTexCoord2fARB": 386,
    "MultiTexCoord2fvARB": 387,
    "MultiTexCoord2i": 388,
    "MultiTexCoord2iv": 389,
    "MultiTexCoord2s": 390,
    "MultiTexCoord2sv": 391,
    "MultiTexCoord3d": 392,
    "MultiTexCoord3dv": 393,
    "MultiTexCoord3fARB": 394,
    "MultiTexCoord3fvARB": 395,
    "MultiTexCoord3i": 396,
    "MultiTexCoord3iv": 397,
    "MultiTexCoord3s": 398,
    "MultiTexCoord3sv": 399,
    "MultiTexCoord4d": 400,
    "MultiTexCoord4dv": 401,
    "MultiTexCoord4fARB": 402,
    "MultiTexCoord4fvARB": 403,
    "MultiTexCoord4i": 404,
    "MultiTexCoord4iv": 405,
    "MultiTexCoord4s": 406,
    "MultiTexCoord4sv": 407
}

functions = [
   "Accum",
   "ActiveShaderProgram",
   "ActiveTexture",
   "ActiveTextureARB",
   "AlphaFunc",
   "AlphaFuncx",
   "AreTexturesResident",
   "AreTexturesResidentEXT",
   "ArrayElement",
   "ArrayElementEXT",
   "AttachObjectARB",
   "AttachShader",
   "Begin",
   "BeginConditionalRender",
   "BeginConditionalRenderNV",
   "BeginQuery",
   "BeginQueryARB",
   "BeginQueryIndexed",
   "BeginTransformFeedback",
   "BindAttribLocation",
   "BindAttribLocationARB",
   "BindBuffer",
   "BindBufferARB",
   "BindBufferBase",
   "BindBufferRange",
   "BindBuffersBase",
   "BindBuffersRange",
   "BindFragDataLocation",
   "BindFragDataLocationEXT",
   "BindFragDataLocationIndexed",
   "BindFramebuffer",
   "BindFramebufferEXT",
   "BindImageTexture",
   "BindImageTextures",
   "BindProgramARB",
   "BindProgramPipeline",
   "BindRenderbuffer",
   "BindRenderbufferEXT",
   "BindSampler",
   "BindSamplers",
   "BindTexture",
   "BindTextureEXT",
   "BindTextures",
   "BindTransformFeedback",
   "BindVertexArray",
   "BindVertexBuffer",
   "BindVertexBuffers",
   "Bitmap",
   "BlendColor",
   "BlendColorEXT",
   "BlendEquation",
   "BlendEquationEXT",
   "BlendEquationiARB",
   "BlendEquationSeparate",
   "BlendEquationSeparateiARB",
   "BlendFunc",
   "BlendFunciARB",
   "BlendFuncSeparate",
   "BlendFuncSeparateEXT",
   "BlendFuncSeparateiARB",
   "BlitFramebuffer",
   "BufferData",
   "BufferDataARB",
   "BufferStorage",
   "BufferSubData",
   "BufferSubDataARB",
   "CallList",
   "CallLists",
   "CheckFramebufferStatus",
   "CheckFramebufferStatusEXT",
   "ClampColor",
   "ClampColorARB",
   "Clear",
   "ClearAccum",
   "ClearBufferData",
   "ClearBufferfi",
   "ClearBufferfv",
   "ClearBufferiv",
   "ClearBufferSubData",
   "ClearBufferuiv",
   "ClearColor",
   "ClearColorIiEXT",
   "ClearColorIuiEXT",
   "ClearColorx",
   "ClearDepth",
   "ClearDepthf",
   "ClearDepthx",
   "ClearIndex",
   "ClearStencil",
   "ClearTexImage",
   "ClearTexSubImage",
   "ClientActiveTexture",
   "ClientActiveTextureARB",
   "ClientWaitSync",
   "ClipPlane",
   "ClipPlanef",
   "ClipPlanex",
   "Color3b",
   "Color3bv",
   "Color3d",
   "Color3dv",
   "Color3f",
   "Color3fv",
   "Color3i",
   "Color3iv",
   "Color3s",
   "Color3sv",
   "Color3ub",
   "Color3ubv",
   "Color3ui",
   "Color3uiv",
   "Color3us",
   "Color3usv",
   "Color4b",
   "Color4bv",
   "Color4d",
   "Color4dv",
   "Color4f",
   "Color4fv",
   "Color4i",
   "Color4iv",
   "Color4s",
   "Color4sv",
   "Color4ub",
   "Color4ubv",
   "Color4ui",
   "Color4uiv",
   "Color4us",
   "Color4usv",
   "Color4x",
   "ColorMask",
   "ColorMaski",
   "ColorMaskIndexedEXT",
   "ColorMaterial",
   "ColorP3ui",
   "ColorP3uiv",
   "ColorP4ui",
   "ColorP4uiv",
   "ColorPointer",
   "ColorPointerEXT",
   "ColorSubTable",
   "ColorTable",
   "ColorTableParameterfv",
   "ColorTableParameteriv",
   "CompileShader",
   "CompileShaderARB",
   "CompressedTexImage1D",
   "CompressedTexImage1DARB",
   "CompressedTexImage2D",
   "CompressedTexImage2DARB",
   "CompressedTexImage3D",
   "CompressedTexImage3DARB",
   "CompressedTexSubImage1D",
   "CompressedTexSubImage1DARB",
   "CompressedTexSubImage2D",
   "CompressedTexSubImage2DARB",
   "CompressedTexSubImage3D",
   "CompressedTexSubImage3DARB",
   "ConvolutionFilter1D",
   "ConvolutionFilter2D",
   "ConvolutionParameterf",
   "ConvolutionParameterfv",
   "ConvolutionParameteri",
   "ConvolutionParameteriv",
   "CopyBufferSubData",
   "CopyColorSubTable",
   "CopyColorTable",
   "CopyConvolutionFilter1D",
   "CopyConvolutionFilter2D",
   "CopyImageSubData",
   "CopyPixels",
   "CopyTexImage1D",
   "CopyTexImage2D",
   "CopyTexSubImage1D",
   "CopyTexSubImage2D",
   "CopyTexSubImage3D",
   "CopyTexSubImage3DEXT",
   "CreateProgram",
   "CreateProgramObjectARB",
   "CreateShader",
   "CreateShaderObjectARB",
   "CreateShaderProgramv",
   "CullFace",
   "DebugMessageCallback",
   "DebugMessageCallbackARB",
   "DebugMessageControl",
   "DebugMessageControlARB",
   "DebugMessageInsert",
   "DebugMessageInsertARB",
   "DeleteBuffers",
   "DeleteBuffersARB",
   "DeleteFramebuffers",
   "DeleteFramebuffersEXT",
   "DeleteLists",
   "DeleteObjectARB",
   "DeleteProgram",
   "DeleteProgramPipelines",
   "DeleteProgramsARB",
   "DeleteQueries",
   "DeleteQueriesARB",
   "DeleteRenderbuffers",
   "DeleteRenderbuffersEXT",
   "DeleteSamplers",
   "DeleteShader",
   "DeleteSync",
   "DeleteTextures",
   "DeleteTexturesEXT",
   "DeleteTransformFeedbacks",
   "DeleteVertexArrays",
   "DepthFunc",
   "DepthMask",
   "DepthRange",
   "DepthRangeArrayv",
   "DepthRangef",
   "DepthRangeIndexed",
   "DepthRangex",
   "DetachObjectARB",
   "DetachShader",
   "Disable",
   "DisableClientState",
   "Disablei",
   "DisableIndexedEXT",
   "DisableVertexAttribArray",
   "DisableVertexAttribArrayARB",
   "DispatchCompute",
   "DispatchComputeIndirect",
   "DrawArrays",
   "DrawArraysEXT",
   "DrawArraysIndirect",
   "DrawArraysInstanced",
   "DrawArraysInstancedARB",
   "DrawArraysInstancedBaseInstance",
   "DrawArraysInstancedEXT",
   "DrawBuffer",
   "DrawBuffers",
   "DrawBuffersARB",
   "DrawBuffersATI",
   "DrawElements",
   "DrawElementsBaseVertex",
   "DrawElementsIndirect",
   "DrawElementsInstanced",
   "DrawElementsInstancedARB",
   "DrawElementsInstancedBaseInstance",
   "DrawElementsInstancedBaseVertex",
   "DrawElementsInstancedBaseVertexBaseInstance",
   "DrawElementsInstancedEXT",
   "DrawPixels",
   "DrawRangeElements",
   "DrawRangeElementsBaseVertex",
   "DrawRangeElementsEXT",
   "DrawTransformFeedback",
   "DrawTransformFeedbackInstanced",
   "DrawTransformFeedbackStream",
   "DrawTransformFeedbackStreamInstanced",
   "EdgeFlag",
   "EdgeFlagPointer",
   "EdgeFlagPointerEXT",
   "EdgeFlagv",
   "Enable",
   "EnableClientState",
   "Enablei",
   "EnableIndexedEXT",
   "EnableVertexAttribArray",
   "EnableVertexAttribArrayARB",
   "End",
   "EndConditionalRender",
   "EndConditionalRenderNV",
   "EndList",
   "EndQuery",
   "EndQueryARB",
   "EndQueryIndexed",
   "EndTransformFeedback",
   "EvalCoord1d",
   "EvalCoord1dv",
   "EvalCoord1f",
   "EvalCoord1fv",
   "EvalCoord2d",
   "EvalCoord2dv",
   "EvalCoord2f",
   "EvalCoord2fv",
   "EvalMesh1",
   "EvalMesh2",
   "EvalPoint1",
   "EvalPoint2",
   "FeedbackBuffer",
   "FenceSync",
   "Finish",
   "Flush",
   "FlushMappedBufferRange",
   "FogCoordd",
   "FogCoorddEXT",
   "FogCoorddv",
   "FogCoorddvEXT",
   "FogCoordf",
   "FogCoordfEXT",
   "FogCoordfv",
   "FogCoordfvEXT",
   "FogCoordPointer",
   "FogCoordPointerEXT",
   "Fogf",
   "Fogfv",
   "Fogi",
   "Fogiv",
   "Fogx",
   "Fogxv",
   "FramebufferParameteri",
   "FramebufferRenderbuffer",
   "FramebufferRenderbufferEXT",
   "FramebufferTexture",
   "FramebufferTexture1D",
   "FramebufferTexture1DEXT",
   "FramebufferTexture2D",
   "FramebufferTexture2DEXT",
   "FramebufferTexture3D",
   "FramebufferTexture3DEXT",
   "FramebufferTextureARB",
   "FramebufferTextureLayer",
   "FramebufferTextureLayerARB",
   "FramebufferTextureLayerEXT",
   "FrontFace",
   "Frustum",
   "Frustumf",
   "Frustumx",
   "GenBuffers",
   "GenBuffersARB",
   "GenerateMipmap",
   "GenerateMipmapEXT",
   "GenFramebuffers",
   "GenFramebuffersEXT",
   "GenLists",
   "GenProgramPipelines",
   "GenProgramsARB",
   "GenQueries",
   "GenQueriesARB",
   "GenRenderbuffers",
   "GenRenderbuffersEXT",
   "GenSamplers",
   "GenTextures",
   "GenTexturesEXT",
   "GenTransformFeedbacks",
   "GenVertexArrays",
   "GetActiveAtomicCounterBufferiv",
   "GetActiveAttrib",
   "GetActiveAttribARB",
   "GetActiveUniform",
   "GetActiveUniformARB",
   "GetActiveUniformBlockiv",
   "GetActiveUniformBlockName",
   "GetActiveUniformName",
   "GetActiveUniformsiv",
   "GetAttachedObjectsARB",
   "GetAttachedShaders",
   "GetAttribLocation",
   "GetAttribLocationARB",
   "GetBooleanIndexedvEXT",
   "GetBooleani_v",
   "GetBooleanv",
   "GetBufferParameteri64v",
   "GetBufferParameteriv",
   "GetBufferParameterivARB",
   "GetBufferPointerv",
   "GetBufferPointervARB",
   "GetBufferSubData",
   "GetBufferSubDataARB",
   "GetClipPlane",
   "GetClipPlanef",
   "GetClipPlanex",
   "GetColorTable",
   "GetColorTableParameterfv",
   "GetColorTableParameteriv",
   "GetCompressedTexImage",
   "GetCompressedTexImageARB",
   "GetConvolutionFilter",
   "GetConvolutionParameterfv",
   "GetConvolutionParameteriv",
   "GetDebugMessageLog",
   "GetDebugMessageLogARB",
   "GetDoublei_v",
   "GetDoublev",
   "GetError",
   "GetFixedv",
   "GetFloati_v",
   "GetFloatv",
   "GetFragDataIndex",
   "GetFragDataLocation",
   "GetFragDataLocationEXT",
   "GetFramebufferAttachmentParameteriv",
   "GetFramebufferAttachmentParameterivEXT",
   "GetFramebufferParameteriv",
   "GetGraphicsResetStatusARB",
   "GetHandleARB",
   "GetHistogram",
   "GetHistogramParameterfv",
   "GetHistogramParameteriv",
   "GetInfoLogARB",
   "GetInteger64i_v",
   "GetInteger64v",
   "GetIntegerIndexedvEXT",
   "GetIntegeri_v",
   "GetIntegerv",
   "GetLightfv",
   "GetLightiv",
   "GetLightxv",
   "GetMapdv",
   "GetMapfv",
   "GetMapiv",
   "GetMaterialfv",
   "GetMaterialiv",
   "GetMaterialxv",
   "GetMinmax",
   "GetMinmaxParameterfv",
   "GetMinmaxParameteriv",
   "GetMultisamplefv",
   "GetnColorTableARB",
   "GetnCompressedTexImageARB",
   "GetnConvolutionFilterARB",
   "GetnHistogramARB",
   "GetnMapdvARB",
   "GetnMapfvARB",
   "GetnMapivARB",
   "GetnMinmaxARB",
   "GetnPixelMapfvARB",
   "GetnPixelMapuivARB",
   "GetnPixelMapusvARB",
   "GetnPolygonStippleARB",
   "GetnSeparableFilterARB",
   "GetnTexImageARB",
   "GetnUniformdvARB",
   "GetnUniformfvARB",
   "GetnUniformivARB",
   "GetnUniformuivARB",
   "GetObjectLabel",
   "GetObjectParameterfvARB",
   "GetObjectParameterivARB",
   "GetObjectPtrLabel",
   "GetPixelMapfv",
   "GetPixelMapuiv",
   "GetPixelMapusv",
   "GetPointerv",
   "GetPointervEXT",
   "GetPolygonStipple",
   "GetProgramBinary",
   "GetProgramEnvParameterdvARB",
   "GetProgramEnvParameterfvARB",
   "GetProgramInfoLog",
   "GetProgramInterfaceiv",
   "GetProgramiv",
   "GetProgramivARB",
   "GetProgramLocalParameterdvARB",
   "GetProgramLocalParameterfvARB",
   "GetProgramPipelineInfoLog",
   "GetProgramPipelineiv",
   "GetProgramResourceIndex",
   "GetProgramResourceiv",
   "GetProgramResourceLocation",
   "GetProgramResourceName",
   "GetProgramStringARB",
   "GetQueryIndexediv",
   "GetQueryiv",
   "GetQueryivARB",
   "GetQueryObjectiv",
   "GetQueryObjectivARB",
   "GetQueryObjectuiv",
   "GetQueryObjectuivARB",
   "GetRenderbufferParameteriv",
   "GetRenderbufferParameterivEXT",
   "GetSamplerParameterfv",
   "GetSamplerParameterIiv",
   "GetSamplerParameterIuiv",
   "GetSamplerParameteriv",
   "GetSeparableFilter",
   "GetShaderInfoLog",
   "GetShaderiv",
   "GetShaderPrecisionFormat",
   "GetShaderSource",
   "GetShaderSourceARB",
   "GetString",
   "GetStringi",
   "GetSynciv",
   "GetTexEnvfv",
   "GetTexEnviv",
   "GetTexEnvxv",
   "GetTexGendv",
   "GetTexGenfv",
   "GetTexGeniv",
   "GetTexImage",
   "GetTexLevelParameterfv",
   "GetTexLevelParameteriv",
   "GetTexParameterfv",
   "GetTexParameterIiv",
   "GetTexParameterIivEXT",
   "GetTexParameterIuiv",
   "GetTexParameterIuivEXT",
   "GetTexParameteriv",
   "GetTexParameterxv",
   "GetTransformFeedbackVarying",
   "GetUniformBlockIndex",
   "GetUniformfv",
   "GetUniformfvARB",
   "GetUniformIndices",
   "GetUniformiv",
   "GetUniformivARB",
   "GetUniformLocation",
   "GetUniformLocationARB",
   "GetUniformuiv",
   "GetUniformuivEXT",
   "GetVertexAttribdv",
   "GetVertexAttribdvARB",
   "GetVertexAttribfv",
   "GetVertexAttribfvARB",
   "GetVertexAttribIiv",
   "GetVertexAttribIivEXT",
   "GetVertexAttribIuiv",
   "GetVertexAttribIuivEXT",
   "GetVertexAttribiv",
   "GetVertexAttribivARB",
   "GetVertexAttribPointerv",
   "GetVertexAttribPointervARB",
   "Hint",
   "Histogram",
   "Indexd",
   "Indexdv",
   "Indexf",
   "Indexfv",
   "Indexi",
   "Indexiv",
   "IndexMask",
   "IndexPointer",
   "IndexPointerEXT",
   "Indexs",
   "Indexsv",
   "Indexub",
   "Indexubv",
   "InitNames",
   "InterleavedArrays",
   "InvalidateBufferData",
   "InvalidateBufferSubData",
   "InvalidateFramebuffer",
   "InvalidateSubFramebuffer",
   "InvalidateTexImage",
   "InvalidateTexSubImage",
   "IsBuffer",
   "IsBufferARB",
   "IsEnabled",
   "IsEnabledi",
   "IsEnabledIndexedEXT",
   "IsFramebuffer",
   "IsFramebufferEXT",
   "IsList",
   "IsProgram",
   "IsProgramARB",
   "IsProgramPipeline",
   "IsQuery",
   "IsQueryARB",
   "IsRenderbuffer",
   "IsRenderbufferEXT",
   "IsSampler",
   "IsShader",
   "IsSync",
   "IsTexture",
   "IsTextureEXT",
   "IsTransformFeedback",
   "IsVertexArray",
   "Lightf",
   "Lightfv",
   "Lighti",
   "Lightiv",
   "LightModelf",
   "LightModelfv",
   "LightModeli",
   "LightModeliv",
   "LightModelx",
   "LightModelxv",
   "Lightx",
   "Lightxv",
   "LineStipple",
   "LineWidth",
   "LineWidthx",
   "LinkProgram",
   "LinkProgramARB",
   "ListBase",
   "LoadIdentity",
   "LoadMatrixd",
   "LoadMatrixf",
   "LoadMatrixx",
   "LoadName",
   "LoadTransposeMatrixd",
   "LoadTransposeMatrixdARB",
   "LoadTransposeMatrixf",
   "LoadTransposeMatrixfARB",
   "LockArraysEXT",
   "LogicOp",
   "Map1d",
   "Map1f",
   "Map2d",
   "Map2f",
   "MapBuffer",
   "MapBufferARB",
   "MapBufferRange",
   "MapGrid1d",
   "MapGrid1f",
   "MapGrid2d",
   "MapGrid2f",
   "Materialf",
   "Materialfv",
   "Materiali",
   "Materialiv",
   "Materialx",
   "Materialxv",
   "MatrixMode",
   "MemoryBarrier",
   "MemoryBarrierByRegion",
   "Minmax",
   "MinSampleShading",
   "MinSampleShadingARB",
   "MultiDrawArrays",
   "MultiDrawArraysEXT",
   "MultiDrawArraysIndirect",
   "MultiDrawElements",
   "MultiDrawElementsBaseVertex",
   "MultiDrawElementsEXT",
   "MultiDrawElementsIndirect",
   "MultiTexCoord1d",
   "MultiTexCoord1dARB",
   "MultiTexCoord1dv",
   "MultiTexCoord1dvARB",
   "MultiTexCoord1f",
   "MultiTexCoord1fARB",
   "MultiTexCoord1fv",
   "MultiTexCoord1fvARB",
   "MultiTexCoord1i",
   "MultiTexCoord1iARB",
   "MultiTexCoord1iv",
   "MultiTexCoord1ivARB",
   "MultiTexCoord1s",
   "MultiTexCoord1sARB",
   "MultiTexCoord1sv",
   "MultiTexCoord1svARB",
   "MultiTexCoord2d",
   "MultiTexCoord2dARB",
   "MultiTexCoord2dv",
   "MultiTexCoord2dvARB",
   "MultiTexCoord2f",
   "MultiTexCoord2fARB",
   "MultiTexCoord2fv",
   "MultiTexCoord2fvARB",
   "MultiTexCoord2i",
   "MultiTexCoord2iARB",
   "MultiTexCoord2iv",
   "MultiTexCoord2ivARB",
   "MultiTexCoord2s",
   "MultiTexCoord2sARB",
   "MultiTexCoord2sv",
   "MultiTexCoord2svARB",
   "MultiTexCoord3d",
   "MultiTexCoord3dARB",
   "MultiTexCoord3dv",
   "MultiTexCoord3dvARB",
   "MultiTexCoord3f",
   "MultiTexCoord3fARB",
   "MultiTexCoord3fv",
   "MultiTexCoord3fvARB",
   "MultiTexCoord3i",
   "MultiTexCoord3iARB",
   "MultiTexCoord3iv",
   "MultiTexCoord3ivARB",
   "MultiTexCoord3s",
   "MultiTexCoord3sARB",
   "MultiTexCoord3sv",
   "MultiTexCoord3svARB",
   "MultiTexCoord4d",
   "MultiTexCoord4dARB",
   "MultiTexCoord4dv",
   "MultiTexCoord4dvARB",
   "MultiTexCoord4f",
   "MultiTexCoord4fARB",
   "MultiTexCoord4fv",
   "MultiTexCoord4fvARB",
   "MultiTexCoord4i",
   "MultiTexCoord4iARB",
   "MultiTexCoord4iv",
   "MultiTexCoord4ivARB",
   "MultiTexCoord4s",
   "MultiTexCoord4sARB",
   "MultiTexCoord4sv",
   "MultiTexCoord4svARB",
   "MultiTexCoord4x",
   "MultiTexCoordP1ui",
   "MultiTexCoordP1uiv",
   "MultiTexCoordP2ui",
   "MultiTexCoordP2uiv",
   "MultiTexCoordP3ui",
   "MultiTexCoordP3uiv",
   "MultiTexCoordP4ui",
   "MultiTexCoordP4uiv",
   "MultMatrixd",
   "MultMatrixf",
   "MultMatrixx",
   "MultTransposeMatrixd",
   "MultTransposeMatrixdARB",
   "MultTransposeMatrixf",
   "MultTransposeMatrixfARB",
   "NewList",
   "Normal3b",
   "Normal3bv",
   "Normal3d",
   "Normal3dv",
   "Normal3f",
   "Normal3fv",
   "Normal3i",
   "Normal3iv",
   "Normal3s",
   "Normal3sv",
   "Normal3x",
   "NormalP3ui",
   "NormalP3uiv",
   "NormalPointer",
   "NormalPointerEXT",
   "ObjectLabel",
   "ObjectPtrLabel",
   "Ortho",
   "Orthof",
   "Orthox",
   "PassThrough",
   "PauseTransformFeedback",
   "PixelMapfv",
   "PixelMapuiv",
   "PixelMapusv",
   "PixelStoref",
   "PixelStorei",
   "PixelTransferf",
   "PixelTransferi",
   "PixelZoom",
   "PointParameterf",
   "PointParameterfARB",
   "PointParameterfEXT",
   "PointParameterfv",
   "PointParameterfvARB",
   "PointParameterfvEXT",
   "PointParameteri",
   "PointParameteriv",
   "PointParameterx",
   "PointParameterxv",
   "PointSize",
   "PointSizePointerOES",
   "PointSizex",
   "PolygonMode",
   "PolygonOffset",
   "PolygonOffsetx",
   "PolygonStipple",
   "PopAttrib",
   "PopClientAttrib",
   "PopDebugGroup",
   "PopMatrix",
   "PopName",
   "PrimitiveRestartIndex",
   "PrimitiveRestartIndexNV",
   "PrimitiveRestartNV",
   "PrioritizeTextures",
   "PrioritizeTexturesEXT",
   "ProgramBinary",
   "ProgramEnvParameter4dARB",
   "ProgramEnvParameter4dvARB",
   "ProgramEnvParameter4fARB",
   "ProgramEnvParameter4fvARB",
   "ProgramLocalParameter4dARB",
   "ProgramLocalParameter4dvARB",
   "ProgramLocalParameter4fARB",
   "ProgramLocalParameter4fvARB",
   "ProgramParameteri",
   "ProgramParameteriARB",
   "ProgramStringARB",
   "ProgramUniform1f",
   "ProgramUniform1fv",
   "ProgramUniform1i",
   "ProgramUniform1iv",
   "ProgramUniform1ui",
   "ProgramUniform1uiv",
   "ProgramUniform2f",
   "ProgramUniform2fv",
   "ProgramUniform2i",
   "ProgramUniform2iv",
   "ProgramUniform2ui",
   "ProgramUniform2uiv",
   "ProgramUniform3f",
   "ProgramUniform3fv",
   "ProgramUniform3i",
   "ProgramUniform3iv",
   "ProgramUniform3ui",
   "ProgramUniform3uiv",
   "ProgramUniform4f",
   "ProgramUniform4fv",
   "ProgramUniform4i",
   "ProgramUniform4iv",
   "ProgramUniform4ui",
   "ProgramUniform4uiv",
   "ProgramUniformMatrix2fv",
   "ProgramUniformMatrix2x3fv",
   "ProgramUniformMatrix2x4fv",
   "ProgramUniformMatrix3fv",
   "ProgramUniformMatrix3x2fv",
   "ProgramUniformMatrix3x4fv",
   "ProgramUniformMatrix4fv",
   "ProgramUniformMatrix4x2fv",
   "ProgramUniformMatrix4x3fv",
   "ProvokingVertex",
   "ProvokingVertexEXT",
   "PushAttrib",
   "PushClientAttrib",
   "PushDebugGroup",
   "PushMatrix",
   "PushName",
   "RasterPos2d",
   "RasterPos2dv",
   "RasterPos2f",
   "RasterPos2fv",
   "RasterPos2i",
   "RasterPos2iv",
   "RasterPos2s",
   "RasterPos2sv",
   "RasterPos3d",
   "RasterPos3dv",
   "RasterPos3f",
   "RasterPos3fv",
   "RasterPos3i",
   "RasterPos3iv",
   "RasterPos3s",
   "RasterPos3sv",
   "RasterPos4d",
   "RasterPos4dv",
   "RasterPos4f",
   "RasterPos4fv",
   "RasterPos4i",
   "RasterPos4iv",
   "RasterPos4s",
   "RasterPos4sv",
   "ReadBuffer",
   "ReadnPixelsARB",
   "ReadPixels",
   "Rectd",
   "Rectdv",
   "Rectf",
   "Rectfv",
   "Recti",
   "Rectiv",
   "Rects",
   "Rectsv",
   "ReleaseShaderCompiler",
   "RenderbufferStorage",
   "RenderbufferStorageEXT",
   "RenderbufferStorageMultisample",
   "RenderbufferStorageMultisampleEXT",
   "RenderMode",
   "ResetHistogram",
   "ResetMinmax",
   "ResumeTransformFeedback",
   "Rotated",
   "Rotatef",
   "Rotatex",
   "SampleCoverage",
   "SampleCoverageARB",
   "SampleCoveragex",
   "SampleMaski",
   "SamplerParameterf",
   "SamplerParameterfv",
   "SamplerParameteri",
   "SamplerParameterIiv",
   "SamplerParameterIuiv",
   "SamplerParameteriv",
   "Scaled",
   "Scalef",
   "Scalex",
   "Scissor",
   "ScissorArrayv",
   "ScissorIndexed",
   "ScissorIndexedv",
   "SecondaryColor3b",
   "SecondaryColor3bEXT",
   "SecondaryColor3bv",
   "SecondaryColor3bvEXT",
   "SecondaryColor3d",
   "SecondaryColor3dEXT",
   "SecondaryColor3dv",
   "SecondaryColor3dvEXT",
   "SecondaryColor3f",
   "SecondaryColor3fEXT",
   "SecondaryColor3fv",
   "SecondaryColor3fvEXT",
   "SecondaryColor3i",
   "SecondaryColor3iEXT",
   "SecondaryColor3iv",
   "SecondaryColor3ivEXT",
   "SecondaryColor3s",
   "SecondaryColor3sEXT",
   "SecondaryColor3sv",
   "SecondaryColor3svEXT",
   "SecondaryColor3ub",
   "SecondaryColor3ubEXT",
   "SecondaryColor3ubv",
   "SecondaryColor3ubvEXT",
   "SecondaryColor3ui",
   "SecondaryColor3uiEXT",
   "SecondaryColor3uiv",
   "SecondaryColor3uivEXT",
   "SecondaryColor3us",
   "SecondaryColor3usEXT",
   "SecondaryColor3usv",
   "SecondaryColor3usvEXT",
   "SecondaryColorP3ui",
   "SecondaryColorP3uiv",
   "SecondaryColorPointer",
   "SecondaryColorPointerEXT",
   "SelectBuffer",
   "SeparableFilter2D",
   "ShadeModel",
   "ShaderBinary",
   "ShaderSource",
   "ShaderSourceARB",
   "StencilFunc",
   "StencilFuncSeparate",
   "StencilMask",
   "StencilMaskSeparate",
   "StencilOp",
   "StencilOpSeparate",
   "TexBuffer",
   "TexBufferARB",
   "TexBufferRange",
   "TexCoord1d",
   "TexCoord1dv",
   "TexCoord1f",
   "TexCoord1fv",
   "TexCoord1i",
   "TexCoord1iv",
   "TexCoord1s",
   "TexCoord1sv",
   "TexCoord2d",
   "TexCoord2dv",
   "TexCoord2f",
   "TexCoord2fv",
   "TexCoord2i",
   "TexCoord2iv",
   "TexCoord2s",
   "TexCoord2sv",
   "TexCoord3d",
   "TexCoord3dv",
   "TexCoord3f",
   "TexCoord3fv",
   "TexCoord3i",
   "TexCoord3iv",
   "TexCoord3s",
   "TexCoord3sv",
   "TexCoord4d",
   "TexCoord4dv",
   "TexCoord4f",
   "TexCoord4fv",
   "TexCoord4i",
   "TexCoord4iv",
   "TexCoord4s",
   "TexCoord4sv",
   "TexCoordP1ui",
   "TexCoordP1uiv",
   "TexCoordP2ui",
   "TexCoordP2uiv",
   "TexCoordP3ui",
   "TexCoordP3uiv",
   "TexCoordP4ui",
   "TexCoordP4uiv",
   "TexCoordPointer",
   "TexCoordPointerEXT",
   "TexEnvf",
   "TexEnvfv",
   "TexEnvi",
   "TexEnviv",
   "TexEnvx",
   "TexEnvxv",
   "TexGend",
   "TexGendv",
   "TexGenf",
   "TexGenfv",
   "TexGeni",
   "TexGeniv",
   "TexImage1D",
   "TexImage2D",
   "TexImage2DMultisample",
   "TexImage3D",
   "TexImage3DEXT",
   "TexImage3DMultisample",
   "TexParameterf",
   "TexParameterfv",
   "TexParameteri",
   "TexParameterIiv",
   "TexParameterIivEXT",
   "TexParameterIuiv",
   "TexParameterIuivEXT",
   "TexParameteriv",
   "TexParameterx",
   "TexParameterxv",
   "TexStorage1D",
   "TexStorage2D",
   "TexStorage2DMultisample",
   "TexStorage3D",
   "TexStorage3DMultisample",
   "TexSubImage1D",
   "TexSubImage2D",
   "TexSubImage3D",
   "TexSubImage3DEXT",
   "TextureBarrierNV",
   "TextureStorage1DEXT",
   "TextureStorage2DEXT",
   "TextureStorage3DEXT",
   "TextureView",
   "TransformFeedbackVaryings",
   "Translated",
   "Translatef",
   "Translatex",
   "Uniform1f",
   "Uniform1fARB",
   "Uniform1fv",
   "Uniform1fvARB",
   "Uniform1i",
   "Uniform1iARB",
   "Uniform1iv",
   "Uniform1ivARB",
   "Uniform1ui",
   "Uniform1uiEXT",
   "Uniform1uiv",
   "Uniform1uivEXT",
   "Uniform2f",
   "Uniform2fARB",
   "Uniform2fv",
   "Uniform2fvARB",
   "Uniform2i",
   "Uniform2iARB",
   "Uniform2iv",
   "Uniform2ivARB",
   "Uniform2ui",
   "Uniform2uiEXT",
   "Uniform2uiv",
   "Uniform2uivEXT",
   "Uniform3f",
   "Uniform3fARB",
   "Uniform3fv",
   "Uniform3fvARB",
   "Uniform3i",
   "Uniform3iARB",
   "Uniform3iv",
   "Uniform3ivARB",
   "Uniform3ui",
   "Uniform3uiEXT",
   "Uniform3uiv",
   "Uniform3uivEXT",
   "Uniform4f",
   "Uniform4fARB",
   "Uniform4fv",
   "Uniform4fvARB",
   "Uniform4i",
   "Uniform4iARB",
   "Uniform4iv",
   "Uniform4ivARB",
   "Uniform4ui",
   "Uniform4uiEXT",
   "Uniform4uiv",
   "Uniform4uivEXT",
   "UniformBlockBinding",
   "UniformMatrix2fv",
   "UniformMatrix2fvARB",
   "UniformMatrix2x3fv",
   "UniformMatrix2x4fv",
   "UniformMatrix3fv",
   "UniformMatrix3fvARB",
   "UniformMatrix3x2fv",
   "UniformMatrix3x4fv",
   "UniformMatrix4fv",
   "UniformMatrix4fvARB",
   "UniformMatrix4x2fv",
   "UniformMatrix4x3fv",
   "UnlockArraysEXT",
   "UnmapBuffer",
   "UnmapBufferARB",
   "UseProgram",
   "UseProgramObjectARB",
   "UseProgramStages",
   "ValidateProgram",
   "ValidateProgramARB",
   "ValidateProgramPipeline",
   "Vertex2d",
   "Vertex2dv",
   "Vertex2f",
   "Vertex2fv",
   "Vertex2i",
   "Vertex2iv",
   "Vertex2s",
   "Vertex2sv",
   "Vertex3d",
   "Vertex3dv",
   "Vertex3f",
   "Vertex3fv",
   "Vertex3i",
   "Vertex3iv",
   "Vertex3s",
   "Vertex3sv",
   "Vertex4d",
   "Vertex4dv",
   "Vertex4f",
   "Vertex4fv",
   "Vertex4i",
   "Vertex4iv",
   "Vertex4s",
   "Vertex4sv",
   "VertexAttrib1d",
   "VertexAttrib1dARB",
   "VertexAttrib1dv",
   "VertexAttrib1dvARB",
   "VertexAttrib1f",
   "VertexAttrib1fARB",
   "VertexAttrib1fv",
   "VertexAttrib1fvARB",
   "VertexAttrib1s",
   "VertexAttrib1sARB",
   "VertexAttrib1sv",
   "VertexAttrib1svARB",
   "VertexAttrib2d",
   "VertexAttrib2dARB",
   "VertexAttrib2dv",
   "VertexAttrib2dvARB",
   "VertexAttrib2f",
   "VertexAttrib2fARB",
   "VertexAttrib2fv",
   "VertexAttrib2fvARB",
   "VertexAttrib2s",
   "VertexAttrib2sARB",
   "VertexAttrib2sv",
   "VertexAttrib2svARB",
   "VertexAttrib3d",
   "VertexAttrib3dARB",
   "VertexAttrib3dv",
   "VertexAttrib3dvARB",
   "VertexAttrib3f",
   "VertexAttrib3fARB",
   "VertexAttrib3fv",
   "VertexAttrib3fvARB",
   "VertexAttrib3s",
   "VertexAttrib3sARB",
   "VertexAttrib3sv",
   "VertexAttrib3svARB",
   "VertexAttrib4bv",
   "VertexAttrib4bvARB",
   "VertexAttrib4d",
   "VertexAttrib4dARB",
   "VertexAttrib4dv",
   "VertexAttrib4dvARB",
   "VertexAttrib4f",
   "VertexAttrib4fARB",
   "VertexAttrib4fv",
   "VertexAttrib4fvARB",
   "VertexAttrib4iv",
   "VertexAttrib4ivARB",
   "VertexAttrib4Nbv",
   "VertexAttrib4NbvARB",
   "VertexAttrib4Niv",
   "VertexAttrib4NivARB",
   "VertexAttrib4Nsv",
   "VertexAttrib4NsvARB",
   "VertexAttrib4Nub",
   "VertexAttrib4NubARB",
   "VertexAttrib4Nubv",
   "VertexAttrib4NubvARB",
   "VertexAttrib4Nuiv",
   "VertexAttrib4NuivARB",
   "VertexAttrib4Nusv",
   "VertexAttrib4NusvARB",
   "VertexAttrib4s",
   "VertexAttrib4sARB",
   "VertexAttrib4sv",
   "VertexAttrib4svARB",
   "VertexAttrib4ubv",
   "VertexAttrib4ubvARB",
   "VertexAttrib4uiv",
   "VertexAttrib4uivARB",
   "VertexAttrib4usv",
   "VertexAttrib4usvARB",
   "VertexAttribBinding",
   "VertexAttribDivisor",
   "VertexAttribDivisorARB",
   "VertexAttribFormat",
   "VertexAttribI1i",
   "VertexAttribI1iEXT",
   "VertexAttribI1iv",
   "VertexAttribI1ivEXT",
   "VertexAttribI1ui",
   "VertexAttribI1uiEXT",
   "VertexAttribI1uiv",
   "VertexAttribI1uivEXT",
   "VertexAttribI2i",
   "VertexAttribI2iEXT",
   "VertexAttribI2iv",
   "VertexAttribI2ivEXT",
   "VertexAttribI2ui",
   "VertexAttribI2uiEXT",
   "VertexAttribI2uiv",
   "VertexAttribI2uivEXT",
   "VertexAttribI3i",
   "VertexAttribI3iEXT",
   "VertexAttribI3iv",
   "VertexAttribI3ivEXT",
   "VertexAttribI3ui",
   "VertexAttribI3uiEXT",
   "VertexAttribI3uiv",
   "VertexAttribI3uivEXT",
   "VertexAttribI4bv",
   "VertexAttribI4bvEXT",
   "VertexAttribI4i",
   "VertexAttribI4iEXT",
   "VertexAttribI4iv",
   "VertexAttribI4ivEXT",
   "VertexAttribI4sv",
   "VertexAttribI4svEXT",
   "VertexAttribI4ubv",
   "VertexAttribI4ubvEXT",
   "VertexAttribI4ui",
   "VertexAttribI4uiEXT",
   "VertexAttribI4uiv",
   "VertexAttribI4uivEXT",
   "VertexAttribI4usv",
   "VertexAttribI4usvEXT",
   "VertexAttribIFormat",
   "VertexAttribIPointer",
   "VertexAttribIPointerEXT",
   "VertexAttribLFormat",
   "VertexAttribP1ui",
   "VertexAttribP1uiv",
   "VertexAttribP2ui",
   "VertexAttribP2uiv",
   "VertexAttribP3ui",
   "VertexAttribP3uiv",
   "VertexAttribP4ui",
   "VertexAttribP4uiv",
   "VertexAttribPointer",
   "VertexAttribPointerARB",
   "VertexBindingDivisor",
   "VertexP2ui",
   "VertexP2uiv",
   "VertexP3ui",
   "VertexP3uiv",
   "VertexP4ui",
   "VertexP4uiv",
   "VertexPointer",
   "VertexPointerEXT",
   "Viewport",
   "ViewportArrayv",
   "ViewportIndexedf",
   "ViewportIndexedfv",
   "WaitSync",
   "WindowPos2d",
   "WindowPos2dARB",
   "WindowPos2dv",
   "WindowPos2dvARB",
   "WindowPos2f",
   "WindowPos2fARB",
   "WindowPos2fv",
   "WindowPos2fvARB",
   "WindowPos2i",
   "WindowPos2iARB",
   "WindowPos2iv",
   "WindowPos2ivARB",
   "WindowPos2s",
   "WindowPos2sARB",
   "WindowPos2sv",
   "WindowPos2svARB",
   "WindowPos3d",
   "WindowPos3dARB",
   "WindowPos3dv",
   "WindowPos3dvARB",
   "WindowPos3f",
   "WindowPos3fARB",
   "WindowPos3fv",
   "WindowPos3fvARB",
   "WindowPos3i",
   "WindowPos3iARB",
   "WindowPos3iv",
   "WindowPos3ivARB",
   "WindowPos3s",
   "WindowPos3sARB",
   "WindowPos3sv",
   "WindowPos3svARB",
]

"""Functions that need dispatch slots but are not used

Some of these functions may have GLX protocol support (for
indirect-rendering).  Other were used in previous versions of Mesa.  They keep
slots in the dispatch table so that newer versions of libGL can still be used
with older drivers."""
unused_functions = [
    # SGIS_multisample
    "SampleMaskSGIS",
    "SamplePatternSGIS",

    # NV_vertex_program
    "AreProgramsResidentNV",
    "ExecuteProgramNV",
    "GetProgramParameterdvNV",
    "GetProgramParameterfvNV",
    "GetProgramivNV",
    "GetProgramStringNV",
    "GetTrackMatrixivNV",
    "GetVertexAttribdvNV",
    "GetVertexAttribfvNV",
    "GetVertexAttribivNV",
    "LoadProgramNV",
    "ProgramParameters4dvNV",
    "ProgramParameters4fvNV",
    "RequestResidentProgramsNV",
    "TrackMatrixNV",
    "VertexAttribPointerNV",

    # MESA_resize_buffers
    "ResizeBuffersMESA",

    # ATI_envmap_bumpmap
    "TexBumpParameterfvATI",
    "TexBumpParameterivATI",
    "GetTexBumpParameterfvATI",
    "GetTexBumpParameterivATI",

    # NV_fragment_program
    "ProgramNamedParameter4fNV",
    "ProgramNamedParameter4dNV",
    "ProgramNamedParameter4fvNV",
    "ProgramNamedParameter4dvNV",
    "GetProgramNamedParameterfvNV",
    "GetProgramNamedParameterdvNV",

    # APPLE_flush_buffer_range
    "BufferParameteriAPPLE",
    "FlushMappedBufferRangeAPPLE",

    # EXT_separate_shader_objects
    "UseShaderProgramEXT",
    "ActiveProgramEXT",
    "CreateShaderProgramEXT",
]
